在Mac Cocoa应用程序中是否存在NSURLConnection的连接限制?

时间:2013-03-05 13:26:45

标签: macos cocoa nsurlconnection limit progress

我正在尝试使用Objective-C构建基于多连接的连续下载模块。

我设置了一个新的NSThread来处理NSURLConnection的事件(例如connection:didReceivedData :)。但我发现我的下载速度并不比我在电脑上的测试快。

当我找到我的模块的一些信息时,我发现只有6个连接从服务器接收数据,即使我开始了60个连接。

在Windows PC上测试后,我发现它的连接数远大于6。

所以我写了另一个测试应用程序来测试我的下载模块运行时是否可以在另一个应用程序中设置一些连接。

我编程在主线程中创建100个连接,在后台线程中创建100个连接,使用[[NSRunLoop currentLoop] run];块线程退出,使用锁存储连接数据到达共享NSMutableSet以避免资源冲突,每次转储此可变集第二。

然后我发现在可变集中仍有6个实时连接(有数据到达)。

所以我相信Mac / Cocoa每次进展的NSURLConnection数量有限。

我想知道如何让限制更大,比如20或其他?

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

我们可以通过使用CFNetwork API(CFHTTPMessage)来打破这种限制。

这是CFNetwork编程指南。 https://developer.apple.com/library/mac/documentation/Networking/Conceptual/CFNetwork/Introduction/Introduction.html#//apple_ref/doc/uid/TP30001132

顺便说一句,如果您决定使用CFNetwork,则需要解决代理问题并进行身份验证。