我正在研究用於學習puposes的多線程服務器應用程序。我現在的問題是接收數據。我第一次編寫應用程序時使用了WSAAsyncSelect,但我不喜歡它是如何工作的(即使隱藏了窗口,依賴窗口在我看來也是愚蠢的)。所以我重寫了它,現在我有一個線程通過連接的客戶端並檢查是否有任何數據要被接收並傳遞給工作線程。這對於一小部分客戶來說是有效的,但我認爲這可能會延誤其他客戶。我讀過的解決方案是爲每個客戶端設置一個線程,但是線程有限制。另一個解決方案是IOCP(Windows),但我需要找到一個很好的文檔,因爲我發現的例子有點太模糊(我可能是這裏的問題)非阻塞套接字多線程接收模型
我使用C/C++語言Microsoft Visual Studio 2013(WinSock,但我想寫在多平臺的方式)
我認爲,[zeromq指南](http://zguide.zeromq.org/page:all)是您開始的正確地點。在處理套接字,線程和異步時,您將瞭解到注意事項。 –
另一個好的來源是[Boost.Asio](http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/overview.html)文檔 –