2012-12-21 89 views
1

我的目標是研究iOS實現持久連接時的限制。iOS NSURLConnection max每個主機的TCP連接+端口端點

可以說我打算使用NSURLConnection作爲我的http客戶端。

我可以同時向單個主機打開多少個tcp連接? 我可以向不同的主機打開多少個tcp連接?

什麼是默認值,我該如何改變它?

+0

在這裏看到:http://stackoverflow.com/questions/2332741/what-is-the-theoretical-maximum-number-of-open-tcp-connections-that-a- modern-lin –

+0

但這是一個現代的linux盒子線程?它可能與iOS設備不同? –

+1

@extremedurability Apple在他們的應用程序中使用了四個限制(請參閱[MVCNetworking](http://developer.apple.com/library/ios/#samplecode/MVCNetworking))。我在網上看到了4-6的限制,但是我的所有測試都提出了5.在做基準測試時,我發現隨着連接數量增加到4以上,性能優勢將減少。並且如果您的服務器出現嚴重問題,的客戶同時做更多,4似乎是一個審慎的限制。爲什麼你需要更多? – Rob

回答

0

在我測試的模擬器中,至少可以爲單個主機構建10個連接(如果您爲每個主機設置連接,則更多)。

但是在設備中,似乎只允許一個連接,因爲我構建了多個連接,其他連接可能從服務器得到錯誤的響應,這很奇怪。所以我認爲在設備中只支持一個連接,但是我也不能提供任何關於這個的文檔,也許我在設備中做了錯誤的測試,但希望這對你有幫助。

+1

設備肯定支持多個併發連接。我們中的許多人一直在設備上進行併發請求,而沒有發生意外。它是AFNetworking的一個整體功能,我也是在自己的課堂上完成的。我已經看到了對單個主機的最多4-6個併發請求的限制。我一直使用4,從來沒有遇到過問題。當我超過5個(至少使用我的服務器)時,這些附加請求將暫停最多一分鐘,等待其他請求完成,因此您通常需要非常緩慢的網絡或非常大的文件來體驗問題。 – Rob

相關問題