ipad - 如何在没有服务器或端口转发的情况下远程访问网络

标签 ipad networking remote-access

我目前正在 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/

相关文章:

iphone - iOS SDK中使用FourSquare API查找附近地点

iphone - splitView/Objective C - 无法从第二个 tableViewController 更新 detailView

objective-c - 开源钢琴键盘 ios

networking - 参与 p2p 文件共享项目的最佳资源

mysql - 如何从 Windows Phone 8 应用程序连接到远程 MySQL 数据库?

ios - 在测试设备上部署 iOS 应用程序。应用不包含某些图像

networking - 如何使用 Wireshark 从 TCP 数据包中提取原始数据

networking - "connecting"在“网络”选项卡中的 Chrome 开发者工具中是什么意思,为什么它只显示在某些网站上?

Java API 远程访问大型机

ssh - 可以在ssh上使用sudo进行编辑的文本编辑器吗?