Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets p2p网络究竟是如何连接的?_Sockets_P2p - Fatal编程技术网

Sockets p2p网络究竟是如何连接的?

Sockets p2p网络究竟是如何连接的?,sockets,p2p,Sockets,P2p,如果我在Skype上与朋友建立连接,音频和视频数据不会通过Microsoft直接传输。我还有一个p2p客户端X,它也做类似的事情。我不完全理解这在内部是如何发生的。如果没有诸如公共IP地址之类的直接标识符,一台机器如何与另一台机器建立连接?同一网络中的多台计算机可以同时进行p2p或Skype呼叫 一周来我一直在想这个问题,因为我想将两个节点彼此连接起来(比如套接字服务器/客户端)。你能告诉我正确的方向吗?如果两个客户想要连接,但都不知道另一个的地址,那么他们都知道的某种中介必须到位,以帮助建立连

如果我在Skype上与朋友建立连接,音频和视频数据不会通过Microsoft直接传输。我还有一个p2p客户端X,它也做类似的事情。我不完全理解这在内部是如何发生的。如果没有诸如公共IP地址之类的直接标识符,一台机器如何与另一台机器建立连接?同一网络中的多台计算机可以同时进行p2p或Skype呼叫


一周来我一直在想这个问题,因为我想将两个节点彼此连接起来(比如套接字服务器/客户端)。你能告诉我正确的方向吗?

如果两个客户想要连接,但都不知道另一个的地址,那么他们都知道的某种中介必须到位,以帮助建立连接。他们都希望联系中间人,中间人告诉他们其他人的直接地址是什么,可以直接建立联系


有时(阅读:始终)一台或两台机器与NAT后面的其他机器共享一个公共IP,需要NAT遍历技术来建立端到端连接,通常是某种形式的ICE或SIP。

我如何在简单套接字连接中确定此“直接地址”?@JochemStoel在这种情况下谁是“I”?中间人?这只是发出请求者的远程地址。中介必须跟踪应用程序层上的状态。