我必须让我的路由器通过某个端口xxxx将从服务器(www.server.com:1112)接收的数据转发到我的iPhone应用程序。我没有任何想法。 我的应用程序侦听端口,但服务器将数据发送到端口xxxx时,路由器拒绝该端口。iPhone中的端口转发
我在我的路由器中进行了手动配置,它工作正常。但我不能指望所有用户都这样做,也不能强迫他们做这样的手动配置。任何人都可以通过为iPhone提供示例代码来帮助我。
Thanx提前。
我必须让我的路由器通过某个端口xxxx将从服务器(www.server.com:1112)接收的数据转发到我的iPhone应用程序。我没有任何想法。 我的应用程序侦听端口,但服务器将数据发送到端口xxxx时,路由器拒绝该端口。iPhone中的端口转发
我在我的路由器中进行了手动配置,它工作正常。但我不能指望所有用户都这样做,也不能强迫他们做这样的手动配置。任何人都可以通过为iPhone提供示例代码来帮助我。
Thanx提前。
正如你所说,你不能指望用户在他们的防火墙上手动打开端口,但你不能指望他们的防火墙将首先允许这样做。
我建议你最好的选择是使用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];
请记住:
感谢您指出TCMPortManager。 我之前试过TCMPortManager,但是该框架是为MAC构建的,不适用于iPhone。所以我只是抛弃了这个。现在,如果这是唯一的解决方案,我会尝试将这个框架转换为iPhone。 –
是的,iOS上的框架限制有点令人失望。这纯粹是猜想,但我假设如果你检查了源代码,你可以删除所有非必需的东西,并相当容易地将TCMPortMapping类添加到你的应用程序。那里有大量的东西像路由器名称解析,你可能不需要。 –
嗨,大家好,我真的需要得到这个工作。我无法让这个TCMPortMapper框架在iOS上工作。你有没有取得进展? –
你的问题是你的路由器 - 它内置的防火墙拒绝来自该端口的流量。你不能从iPhone中神奇地控制你的路由器。即使你可以,用户都有不同的路由器和防火墙! – lxt