我需要啓動客戶端1000的在一個單一的過程連接,我需要解決的關鍵限制因素是驅動程序不支持ConnectEx,所以我不能有一個純IOCP解。非阻塞套接字在Windows連接不ConnectEx
我的第一個想法是處理連接的線程池,每個句柄可以使用普通連接/選擇語義處理多達64個連接,並且一旦連接繼續使用IOCP。 但這不能工作;一旦選擇正在運行,我無法將另一個套接字添加到FD_SET。所以我將不得不將套接字設置爲非阻塞,然後輪詢它們。
最好的解決方案可能是最簡單的;一個每個線程連接客戶端。假設我可以保持連接速率合理,池中的線程數可能很小。
這是一個奇怪的情況,理想情況下,驅動程序將支持ConnectEx,但它不(現在),我需要以最好的方式解決它。
還有別的辦法嗎?
WSAAsyncSelect和WSAEventSelect都有益無害。我想我會以每個連接一個線程開始,然後使用這兩個連接中的一個將連接彙集到64個組中。謝謝。 – hplbsh
我沒有注意到WSAAsyncSelect使用Windows消息。討厭,但可能非常有幫助。 – hplbsh