Я пытаюсь создать протокол / программное обеспечение для обмена файлами p2p на Java. Я заинтересован в изучении использования сокетов, поэтому я не буду использовать JXTA или какой-либо другой API.
Я читал о перфорации отверстий TCP, и это может не работать со всеми типами NAT. Но я вижу, что Gnutella и BitTorrent всегда работают на каждой машине / NAT, которые я пробую. Так используют ли они пробивку отверстий TCP для установления соединения между хостами?
Кроме того, подобный код будет выполнять пробивание отверстий TCP?
final ServerSocket s = new ServerSocket(7777);
Thread t = new Thread(new Runnable(){
public void run() {
try
{
s.accept();
}
catch(Exception ex)
{
}
}
});
Socket sock = new Socket();
sock.connect(new InetSocketAddress("IP ADDRESS", 7777), 50000);