gpt4 book ai didi

c++ - 使用 UNIX 套接字,如何在能够发送数据的同时等待数据?

转载 作者:太空狗 更新时间:2023-10-29 20:06:43 24 4
gpt4 key购买 nike

我有一个使用 C++ 的服务器,它使用 UNIX 套接字,当前阻塞来自单个客户端的 read() 调用。我希望能够扩展服务器,以便我可以将一些数据写入套接字,同时仍然能够从套接字读取数据?像 Boost.Thread 这样的线程库是完成此任务的最佳方法,还是有其他更容易/更有效的方法?

最佳答案

您有很多选择。至少四个:

  • 使用选择(/poll/epoll/kqueue)
  • 使用单独的线程进行读/写(pthreads/Boost.Thread)
  • 使用asio
  • 使用异步IO(例如libaio)

最简单的就是你所知道的 :)。所以对我来说 asio 将是一场噩梦,而 epoll 将是小菜一碟。您的里程可能会有所不同。

就效率而言,select 的特定实现替代品很难胜过。

关于c++ - 使用 UNIX 套接字,如何在能够发送数据的同时等待数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6473391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com