2012-04-01 92 views
1

我必須打開一個NSStream到只有數字地址,而不是名稱的wifi接入點。它需要NSStream 30-40秒來打開一個套接字。在實驗中,我發現遠程登錄到一個窗口框的AP是瞬時的,但在Mac上,連接相同的30-40秒。在研究telnet時,我發現這個實現在mac上有點不同,因爲默認情況下會嘗試進行名稱查找。閱讀手冊頁的telnet,我發現: - 當目標主機作爲IP地址給出時,阻止IP地址進行名稱查找。NSStream - 反向DNS查找錯誤

當我使用「telnet -N IP地址端口」,我的連接瞬間!我懷疑這個問題導致我的NSStream連接延遲。有什麼辦法可以做到相當於在NSStream中設置「-N」標誌嗎?

回答

1

看起來NSHost在Cocoa Touch上不可用,所以你不能強制給定地址的主機,但我不知道是否否定了對dns查找的需要。

自2005年以來,這個問題一直存在,但這可能不適用於Cocoa Touch庫。在任何情況下,沒有給出解決辦法:

+0

在我看來,就好像使用CFSocket API會得到解決此問題。 – JeremyP 2012-04-02 15:06:45

+0

我搞砸了這個和CFSocket(在這種情況下通過SimpleSocket)確實工作 – nflacco 2012-04-02 22:19:27