我必須讓我的路由器通過某個端口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