Я пытаюсь выполнить p2p файл для обмена файлами на Java. Мне интересно изучать использование сокета, поэтому я не буду использовать JXTA или какой-либо API.
Я прочитал о пробивке отверстий в TCP, и он может не работать для всех типов NAT. Но я вижу, что Gnutella и BitTorrent всегда работают на каждой машине /NAT, которую я пытаюсь. Так они используют TCP Hole Punching для инициирования соединения между хостами?
Кроме того, такой код мог бы сделать пробивку TCP Hole?
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);