C++ 套接字编程:创建多个流
c++ socket programming: creating multiple streams
我正在开发一个应用程序,以便在创建套接字后在侦听器和调用者模式下启动多个流。现在,如果我启动一个流,进程会挂起,因为流正在等待数据。所以我很清楚,我需要以异步方式启动流,以便应用程序的其余部分继续工作。
我是否在以下位置开始流:
- 单独的线程
- 使用分叉分离进程
- 另请阅读有关选择的信息,那会起作用吗 阻塞
- /非阻塞套接字是否可以解决此问题。
这个应用程序是用 c++ 完成的。
您可以使用像Boost.Asio这样的库或C函数poll()
(或select()
基本上做同样的事情(一次等待多个套接字。 无论哪种方式,您都希望"多路复用"套接字,这意味着您阻塞直到其中任何一个有可用的数据,然后您从该套接字中读取。 这是构建的网络应用程序的数量,通常比为每个连接设置一个线程或进程更高效、更可扩展且更不容易出错。
相关文章:
- 如何在CPP中创建应该在Windows和Linux上运行的套接字?
- C++套接字客户端到 Python 服务器未创建连接
- 在C ++ ASIO中,如何为HTTP或HTTPS创建相同的套接字对象(接口/抽象问题?
- 如何在C++中创建特定大小的消息以通过UDP套接字发送?
- 在线程C++中创建一个套接字
- 从 PHP 调用已编译的C++可执行文件来创建套接字
- C++ 套接字编程:创建多个流
- 在新计算机上,ZMQ上下文套接字创建要慢得多
- C 创建多个套接字客户端
- 根据C++代码在 PHP 中创建字节数据并将其传递给套接字
- 正在创建多个TCP套接字连接
- 连接到Boost.Asio创建的域套接字时权限被拒绝
- 我缺少什么来创建套接字
- 当服务器重新启动并且客户端收到WSAECONNRESET错误代码时,我应该重新创建整个套接字吗
- 在具有 DNS 名称时创建套接字
- 如何在同一程序中创建多个套接字
- 在Qt中创建套接字
- s3eSocket Marmalade无法创建套接字
- Linux 系统不允许创建套接字,因为"Too many open files"*即使在重新启动后*
- 运行io_service后创建套接字