我必须将NSStream打开到只有数字地址而不是名称的wifi接入点。 NSStream需要30-40秒才能打开套接字。在实验中,我发现从Windows盒远程登录到AP是瞬时的,但是在Mac上,连接时间是30-40秒。在研究telnet时,我发现在Mac上的实现有所不同,因为它默认情况下会尝试进行名称查找。阅读telnet的手册页,我发现:
-N在将目标主机指定为IP地址时,防止IP地址命名查找。
当我使用“ telnet -N IP地址端口”时,我的连接是瞬时的!我怀疑是同一问题导致我的NSStream连接延迟。有什么方法可以等效于在NSStream中设置“ -N”标志吗?
最佳答案
看起来NSHost在Cocoa Touch上不可用,因此您不能强制使用给定地址的主机,尽管我不知道这是否否定了dns查找的需要。
自2005年以来一直存在该问题,尽管这可能不适用于Cocoa Touch库。无论如何,都没有给定的解决方案:
http://developer.apple.com/library/ios/#DOCUMENTATION/Networking/Conceptual/CFNetwork/Concepts/Concepts.html#//apple_ref/doc/uid/TP30001132-CH4-SW10
http://developer.apple.com/library/ios/#DOCUMENTATION/CoreFoundation/Reference/CFSocketRef/Reference/reference.html#//apple_ref/doc/c_ref/CFSocketCreate