2013-09-22 5 views

ответ

2

Для того, чтобы создавать сети P2P через Интернет, вам нужно иметь дело с несколькими проблемами. В основном, NAT Traversal и межсетевые экраны. Если вы не справитесь с этими проблемами, ваши соединения будут подвержены ошибкам. Для этой цели лучше использовать существующую инфраструктуру P2P. В Java одной из основных платформ является JXSE, которая представляет собой реализацию JXTA-протоколов с открытым исходным кодом. Проект теперь прекращен, но имеется много документации. См., https://jxse.kenai.com.

Если JXSE слишком тяжелый/сложный для ваших целей, каким он может быть, я бы использовал меньшую/более простую библиотеку P2P, которая реализует базовую форму NAT Traversal или брандмауэра. Это может не учитывать каждый случай, но он может работать для конкретного случая. Доступны некоторые из этих версий с открытым исходным кодом; Google это или посмотрите на GitHub.

0

Напишите приложение (сервер), которое открывает сокет для прослушивания на каком-либо произвольном порту. Напишите другое приложение (клиент), которое отправляет запрос на IP-адрес и порт хоста, на котором запущен сервер.

+0

Но это работает только в локальной сети, а не через Интернет. – oliverkn

+0

Это зависит от сетей, к которым подключены компьютеры. Любые два компьютера с маршрутизируемыми IP-адресами могут разговаривать друг с другом. И есть другие способы заставить его работать, если у вас нет маршрутизируемых IP-адресов: см. Http://www.opendns.com/support/dynamic_ip/ – bryonbean

Смежные вопросы