0

我的应用程序在启动时尝试确定位于同一 LAN 上的 Web 服务器的 IP。

它计算出要扫描的 IP 范围,并使用NSURLConnection具有 1 秒超时时间的对象来确定 IP 是否可达,如果是,则尝试在其上调用服务,如果服务调用成功,则我们知道我们'找到了正确的IP。

但问题是应用程序一次不能打开超过 5 个连接,即使所有连接都有不同的 IP 来连接。我会得到大约十几个连接,但其余的只会在The request timed out.不离开设备的情况下报告。

我读过此限制适用于NSURLConnection与单个 IP 地址的连接,但正如我所说,每个连接都有自己不同的 IP。

我还尝试使用SCNetworkReachability来确定 IP 是否可访问,但它告诉我的只是 LAN 上的 IP 地址在理论上是可访问的,而无需进行实际连接。

是否有可靠的方法一次连接到更多 IP?

4

1 回答 1

0

每个操作系统都维护每个进程的最大套接字数。我找不到 iOS 的权威来源,但苹果将这个数字保持在非常低的水平是有道理的,而 5 似乎是其他人尝试这个的常见答案。

您可能希望查看NSOperationQueue管理连接(请参阅使用 NSOperationQueue 的异步 HTTP 客户端)或用于AFNetworking完成所有实际工作。

于 2013-09-08T02:12:52.853 回答