boost::asio-窥探套接字缓冲区
boost::asio - peeking into a socket buffer
我使用boost::asio::read(或者可能是等效的async_read)从套接字读取一些数据。
是否可以将读取的字节留在底层套接字中,以便下次在套接字上调用read时再次接收该数据?
正如Simon所说,boost::asio::read()
(或boost::asio::async_read()
)无法实现。但是,对于read()
,您可以在套接字上调用native_handle()
来获取套接字描述符,然后使用带有MSG_PEEK
标志的::recvmsg()
。类似地,您可以使用null_buffers()
作为接收缓冲区来调用async_read()
,然后使用native_handle()
/::recvmsg()
技巧来查看数据。查看boost文档的这一部分,了解如何使用null_buffer()。
不,这是不可能的-如果你想要一种偷看,你必须自己存储偷看的字节。
相关文章:
- 套接字读取后,我在缓冲区中看到意外输入
- 何时需要修改套接字的接收缓冲区大小?
- 为异步发送缓冲区保留内存(提升 asio 套接字)
- 套接字缓冲区到字符串
- 我正在编写一个简单的客户端套接字应用程序,但在连接后服务器收到一个空缓冲区
- 无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满
- 跨平台套接字发送,Linux 上的缓冲区常量无效* Windows上的常量字符*,最佳处理方式
- 为什么收到的缓冲区大小大于最初通过套接字发送的大小
- 套接字连接上的缓冲区溢出
- 增加 UDP 套接字中的接收缓冲区
- 从套接字读取到缓冲区
- 套接字:在没有memcpy的情况下,使用recvfrom将UDP数据获取到字对齐的缓冲区
- 页面对齐的套接字发送缓冲区
- C++套接字编程TCP/IP套接字缓冲区的最大大小
- 在Linux中发送套接字的缓冲区为空
- 如何确定/设置套接字缓冲区大小
- 如何在使用之前清除内部服务器套接字缓冲区的内容
- boost::asio-窥探套接字缓冲区
- UDP套接字缓冲区溢出检测
- 一次性读取整个套接字缓冲区