作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我将编写一个 Linux 客户端,它将与五个(或更多)服务器建立套接字连接。客户端将向每个人发送一个“行”(一个字符串后跟“\n”),并将从每个人收到一条返回的行。
我想在客户端使用select() 或epoll();但是,这是基于 TCP 和流的,当 select() 弹出时,我不能保证在系统缓冲区中有一整行。我正在寻找的是一个库,它提供类似于 epoll() 和 sysread() 的 API,但在整个行 的基础上工作strong> 的数据正在缓冲并准备好读取。
我很惊讶在我的 Internet 搜索中找不到这样的东西 - 我本以为这是一个相当普遍的需求。 (也许我对问题的措辞不正确。)编写起来似乎并不太难,但我怀疑开源解决方案会更安全。
最佳答案
看看 boost asio .特别是它有一个 async_read_until
功能
Start an asynchronous operation to read data into a streambuf until it contains a delimiter, matches a regular expression, or a function object indicates a match.
如果您使用的是 http,我还建议 cpp-netlib支持 asynchronous clients .
关于linux - 用于非阻塞、面向行的套接字 I/O 的 C++ 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14543042/
我是一名优秀的程序员,十分优秀!