我写的基于断码在此链接通讯软件:将消息发送到计算机断网蟒
http://code.activestate.com/recipes/578802-send-messages-between-computers/
我爱这个代码和它的作品很好,但它不会让我将消息发送到不在我的网络上的计算机。我想知道是否有办法修改此代码,以便我可以在任何地方向计算机发送消息。
任何帮助或建议将是伟大的。
我写的基于断码在此链接通讯软件:将消息发送到计算机断网蟒
http://code.activestate.com/recipes/578802-send-messages-between-computers/
我爱这个代码和它的作品很好,但它不会让我将消息发送到不在我的网络上的计算机。我想知道是否有办法修改此代码,以便我可以在任何地方向计算机发送消息。
任何帮助或建议将是伟大的。
该代码配方使用数据报套接字(UDP协议),通常它们被网关/代理/防火墙阻止。您可能不得不改用TCP来代替。
我不认为这很重要。大多数网络使用多对一的NAT(源NAT),除非您在防火墙中设置端口转发,否则无法从公共网络连接UDP和TCP。 “阻塞”是源NAT的自然副作用。 –
是的,我想我也对UDP多播感到困惑。通常普通的UDP路由很好,我猜(除了NAT问题) –
如果计算机在万维网上,那么它在某种程度上*在你的网络上,它可能没有一个你可以与之通话的面向公众的IP地址。 – turbulencetoo
机会来源和/或目标网络在NAT后面。在这种情况下,有两种通信方式:使用具有公共地址的中央服务器来中继客户端之间的消息(如IRC)或在每个NAT防火墙中设置端口以允许通信。有更高级别的库处理网络通信,处理普通套接字是痛苦的,检查龙卷风或扭曲。 –