我必须让我的路由器将从服务器(www.server.com:1112)收到的数据通过某个端口xxxx转发到我的iPhone应用程序。我什么都不知道。 我的应用程序侦听端口,但是当服务器将数据发送到端口xxxx时,路由器拒绝该端口。
我在路由器中进行了手动配置,效果很好。但我不能指望所有用户都这样做,我也不能强迫他们做这样的手动配置。任何人都可以通过提供iPhone的示例代码来帮助我。
提前完成。
答案 0 :(得分:1)
正如您所说,您不能指望用户手动打开防火墙上的端口,但您不能指望他们的防火墙首先允许这样做。
我建议你最好的办法就是使用uPNP并让兼容的路由器为你设置端口转发,类似于BitTorrent。我对TCMPortMapper框架感到满意,并且在subethaedit等应用中用于制作。为了无耻地从文档中删除,打开端口就像这样简单:
TCMPortMapper *pm = [TCMPortMapper sharedInstance];
[pm addPortMapping:
[TCMPortMapping portMappingWithLocalPort:1337 # local port iPhone listens on
desiredExternalPort:13337 # remote port you want router to listen on
transportProtocol:TCMPortMappingTransportProtocolTCP
userInfo:nil]];
[pm start];
请记住: