Реализация TCP в Java с использованием UDP (датаграммы) - PullRequest
1 голос
/ 30 июня 2011

Для приложения для обмена файлами я хотел бы использовать сокеты TCP / IP. Но это не работает, потому что оба клиента находятся за NAT. Поэтому я должен использовать UDP и метод пробивки отверстий.

Поскольку UDP ненадежен, я должен реализовать протокол, подобный TCP. Мне не нужны потоки. Протокол на основе сообщений будет в порядке. Где-то уже есть бесплатная библиотека Java? Если нет, есть ли абстрактное руководство, как реализовать такой протокол?

Ответы [ 3 ]

1 голос
/ 30 июня 2011

Если вы ищете протокол на основе сообщений на основе UDP, я бы рассмотрел TeleHash .Также доступны библиотеки Java.

Возможно, это неправильный выбор, если вы полагаетесь на большие объемы передаваемых двоичных данных, но тогда протокол на основе потока может быть лучшим выбором в любом случае.

1 голос
/ 02 июля 2011

Вы можете реализовать перфорацию дырок TCP, которая позволит двум пирам общаться за брандмауэром. сначала пройдите по этой ссылке
http://www.brynosaurus.com/pub/net/p2pnat/

, а затем обновите вопрос, если вам нужна дополнительная помощь по этому вопросу. Но проблема с перфорацией TCP-протокола заключается в том, что он может быть успешным при 60% доступных на рынке маршрутизаторов, тогда как перфорация UDP-дырок успешно 80-90%.

проверьте и эту ссылку. http://stackoverflow.com/questions/917385/nat-traversal-with-java

0 голосов
/ 30 июня 2011

было ли это полезно?

http://www.syslog4j.org/

...