我目前正在 iPad 上开发一个应用程序,该应用程序连接到本地网络上的客户端电脑并传递消息。 阅读以下教程后,我在客户端安装了 python 应用程序: http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server
它适用于本地连接。 该应用程序打开一个连接端口,我的 iPad 应用程序使用客户端的本地 IP 和端口进行连接。
如果我想连接到公共(public) IP,会发生什么情况? 我试过了,但没用。我从以下站点获取了客户端的公共(public)IP: http://www.whatismyip.com/
我使用相同的 python 应用程序来打开端口。 我想,我必须在路由器上打开一个端口并将其转发到客户端。但是有没有一种方法可以做到这一点而无需访问路由器的设置。我想实现即时访问,这样用户就不用担心设置了。
就像 Skype、多人游戏或其他在线服务一样。我的问题有点笼统,不具体。非常遗憾。我希望它也可以帮助其他人。
最佳答案
您尝试访问的计算机可能位于路由器/NAT 设备后面。换句话说,它没有直接连接到互联网。
路由器负责决定允许哪些数据报在专用网络和公共(public)网络之间移动以及它们应该去往何处。
Skype、游戏和在线服务都会从专用网络内发起向外到公共(public)网络上的服务器的连接。传出网络流量会触发临时 NAT(网络地址转换)规则,该规则允许从目标返回的数据报路由回专用主机。
但其他传入流量将被阻止,除非您在路由器/NAT 中专门设置规则告诉其将数据发送到何处。否则它怎么知道将数据转发到哪个地址?
因此,只有三种方法可以与 NAT 路由器后面的计算机进行通信:
- 它必须先与您联系。
- 必须有人配置 NAT/路由器才能将公共(public)端口转发到专用计算机。
- 你们双方都必须联系充当中介的第三台机器。
主机获得完全连接的唯一方法是拥有自己的正确路由的公共(public) IP 地址。否则,NAT 的全部意义就是限制连接。
关于ipad - 如何在没有服务器或端口转发的情况下远程访问网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9556079/