2010-06-10 54 views
3

我目前正在使用線程來異步處理連接和發送調用。這一切工作正常,但現在我想使接收異步太。如何在等待數據時不暫停整個隊列的情況下接收數據?我現在能想到的唯一解決方案是第二個線程。如何處理C++中的異步套接字接收?

+0

框架?促進? Qt的?原始的Windows API? Linux呢?請告訴更多。 – 2010-06-10 18:22:41

回答

6

查找到non-blocking sockets和查詢API,如select(2)/poll(2)/epoll(4)/kqueue(2)

具體在C++中,請查看boost::asio

+0

如果處理recv()不讀取任何數據(這很容易)的情況,非阻塞套接字應該足夠了。使用select()或類似的東西有其優點,但也有缺點。您可以自行決定更適合您的需求。 – PeterK 2010-06-11 16:03:40