2010-06-10 93 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