回答
基本上,什麼listen()
積壓影響是多少傳入的連接可以排隊,如果你的應用程序不是accept()
荷蘭國際集團聯繫,儘快爲他們進來,這不是大多數應用尤爲重要。大多數系統使用的最大值是128,傳遞通常是安全的。
好的,如果'listen(sockfd,5)',我應該在我的'accept()'(在我的無限循環中)測試'current_nb_client <5',以便向我的客戶端發送錯誤消息,積壓和處理這在客戶端? – mathieug 2012-04-03 23:57:29
不,這不是必要的 - 只要你一進來就接受連接,你的收聽積壓的長度就不相關。您可以根據需要獲得儘可能多的*活動*連接;收聽積壓隻影響尚未完全建立的連接。 – duskwuff 2012-04-04 00:26:42
哦,我明白了!我以爲他們不會從隊列中消失。但不是!這是一個待處理的隊列,我只需要「接受()」,它們就會從隊列中消失。 – mathieug 2012-04-04 01:04:24
這是試圖連接的客戶端之間的戰鬥。將接受請求推送到隊列中,並將接受請求線程吸引到隊列中。通常,線程獲勝。我通常設置爲32,但通常不是一個重要的參數。
好吧,如果我'聽(sockfd,5)',我應該在我的accept()中測試(在我的無限循環中)是否current_nb_client <5',以便向我的客戶端發送錯誤消息,或者我可以信任積壓和處理這在客戶端? – mathieug 2012-04-03 23:57:54
如果隊列已滿,連接嘗試將被拒絕,但它不太可能發生,你應該忘記它。必須有一個隊列來覆蓋那些時候,當一個突發中出現大量連接請求時,但總體來說,今天的處理器/內存/操作系統/任何能夠很容易地跟上繁忙網絡。 – 2012-04-04 07:38:35
我明白了,謝謝! – mathieug 2012-04-04 10:19:08
- 1. 爲什麼socket_listen使用積壓()
- 2. 爲什麼我應該在System Verilog中使用解壓向量?
- 3. 卷積的結果應該是什麼?
- 4. 我應該使用什麼驗證
- 5. 我應該使用什麼ninject綁定?
- 6. 我應該使用什麼模型?
- 7. 爲什麼我應該使用@properties?
- 8. 我應該使用什麼指數?
- 9. 我應該使用什麼appid與netsh.exe?
- 10. 我應該使用什麼jetty jar?
- 11. 我應該使用什麼? AJAX或jQuery?
- 12. 我應該使用什麼gacutil.exe?
- 13. 我什麼時候應該使用javax.swing.SwingUtilities.invokeLater()?
- 14. 我應該使用什麼元信息?
- 15. 我應該使用什麼mysqli函數?
- 16. 我應該爲git user.name使用什麼?
- 17. 我應該使用什麼WebSockets系統?
- 18. 我應該使用什麼加入?
- 19. 我什麼時候應該使用UITableViewCellSeparatorStyleSingleLineEtched?
- 20. 我應該使用什麼URL
- 21. 我應該使用什麼asp.net事件?
- 22. 我應該使用什麼交易IsolationLevel?
- 23. 我應該使用什麼鍵爲HashMap?
- 24. 套接字?我應該使用什麼?
- 25. 爲什麼我不應該使用Unity?
- 26. 我應該使用什麼,UITableView或UICollectionView?
- 27. 我應該使用什麼控制器?
- 28. 我應該使用什麼JavaScript庫?
- 29. 我應該使用什麼PDO查詢?
- 30. 我應該使用什麼jdk?
可能重複[套接字監聽backlog參數,如何確定此值?](http://stackoverflow.com/questions/114874/socket-listen-backlog-parameter-how-to-determine-this-value) – caf 2012-04-04 03:25:39