![]() |
1
3
除了john feminella的答案之外,您还可以考虑使用 UPNP 许多用户网络设备支持的服务。 |
![]() |
2
4
你说得对,这不是小事。问题是什么叫做nat,或者 network address translation . 从本质上讲,您在自己的本地网络中拥有的IP是唯一的,但是在公共Internet的更广泛上下文中,同一路由器后面的许多人将拥有相同的公共IP。因此,给定一个IP和一些数据,就不一定能告诉另一端的哪个人应该得到它。 最有效和最简单的解决方案是让第三方通过插入数据流来调解连接。聊天中的每个人不是同时成为“客户机”和“服务器”,而是只有一个服务器,它位于一个众所周知的公共位置;然后每个人都连接到它。然后,服务器管理通信并在人们聊天时向他们发送消息。 不过,还有其他解决办法。例如,您可以使用 端口(S) :所有通信都在此端口上进行。然后不需要服务器,但所有端点都需要打开该端口,这需要事先进行配置。 |
![]() |
3
3
我假设你是说在nat环境中,如果是这样的话,请阅读并理解 Peer-to-Peer Communication Across Network Address Translators (Ford, Srisuresh & Kegel . 关键的概念是,每个客户机都必须启动一个连接,该连接将打开通过nat设备的路径。参考 Pidgin source code 得到一些想法。 |
![]() |
Ian Newson · 协议缓冲区、C#和网络流:永远不会收到消息 3 年前 |
![]() |
Evantoki Alfa · 线程“main”java中出现异常。lang.ArrayIndexOutOfBoundsException:演示时为0。查找。main(Lookup.java:19) 3 年前 |
![]() |
ê¹ì¼í · 如何发送带有引号的关键数据的POST方法? 3 年前 |
![]() |
TiDu · 使用EKS设置出口网关的最简单方法,无需Istio 3 年前 |
![]() |
Nop · 无法关闭键盘中断(Python)上的套接字连接 3 年前 |