C++ 套接字编程:创建多个流

c++ socket programming: creating multiple streams

本文关键字:创建 套接字 编程 C++      更新时间:2023-10-16

我正在开发一个应用程序,以便在创建套接字后在侦听器和调用者模式下启动多个流。现在,如果我启动一个流,进程会挂起,因为流正在等待数据。所以我很清楚,我需要以异步方式启动流,以便应用程序的其余部分继续工作。

我是否在以下位置开始流:

  • 单独的线程
  • 使用分叉分离进程
  • 另请阅读有关选择的信息,那会起作用吗
  • 阻塞
  • /非阻塞套接字是否可以解决此问题。

这个应用程序是用 c++ 完成的。

您可以使用像Boost.Asio这样的库或C函数poll()(或select()基本上做同样的事情(一次等待多个套接字。 无论哪种方式,您都希望"多路复用"套接字,这意味着您阻塞直到其中任何一个有可用的数据,然后您从该套接字中读取。 这是构建的网络应用程序的数量,通常比为每个连接设置一个线程或进程更高效、更可扩展且更不容易出错。