Using UNIX sockets, how to wait for data while being able to send data?
我有一个使用UNIX套接字的C ++服务器,该服务器当前阻止来自单个客户端的read()调用。 我希望能够扩展服务器,以便可以向套接字写入一些数据,同时仍然可以从套接字读取数据? 是像Boost.Thread这样的线程库是完成此任务的最佳方法,还是还有其他更容易/更有效的方法?
您有很多选择。 至少四个:
- 使用选择(/ poll / epoll / kqueue)
- 使用单独的线程进行读/写(pthreads / Boost.Thread)
- 使用asio
- 使用异步IO(例如libaio)
最简单的就是您所知道的:)。 因此对我来说,asio会是噩梦,而
至于效率,很难击败