我的应用尝试在启动时确定位于同一LAN上的网络服务器的IP。
它计算出要扫描的IP范围,并使用NSURLConnection
个对象以1秒超时来确定IP是否可达,如果是,则尝试在其上调用服务,如果服务呼叫成功然后我们知道我们找到了正确的IP。
问题是,即使所有连接都有不同的IP连接,应用也无法一次打开超过5个连接。我会得到大约十几个连接,但其他人只会在不离开设备的情况下报告The request timed out.
。
我已经读过这个限制适用于NSURLConnection
到单个IP地址的连接,但正如我所说,每个连接都有自己不同的IP。
我还尝试使用SCNetworkReachability
来确定IP是否可以访问,但它告诉我的是,理论上可以访问LAN上的IP地址,而无需建立实际连接。
是否有可靠的方法一次连接到更多IP?
答案 0 :(得分:0)
每个操作系统都维护每个进程的最大套接字数。我找不到iOS的权威来源,但苹果保持这个数字非常低是有道理的,而其他人尝试这个数字似乎是一个常见的答案。
您可能需要NSOperationQueue
来管理连接(请参阅Asynchronous HTTP Client Using NSOperationQueue)或使用AFNetworking
来完成所有实际工作。