当前位置: 技术问答>linux和unix
关于套接字缓冲区
来源: 互联网 发布时间:2017-03-27
本文导语: 我们知道,对每个套接字,系统都会分配一个发送缓冲区和接收缓冲区, 而且这个缓冲区的长度我们可以设置。 我的问题是,我如何知道: 1)在不调用 recv 的情况下, 当前接收缓冲区中,有多少数据. 2)当前...
我们知道,对每个套接字,系统都会分配一个发送缓冲区和接收缓冲区,
而且这个缓冲区的长度我们可以设置。
我的问题是,我如何知道:
1)在不调用 recv 的情况下, 当前接收缓冲区中,有多少数据.
2)当前发送缓冲区中还有多少数据
谢谢
而且这个缓冲区的长度我们可以设置。
我的问题是,我如何知道:
1)在不调用 recv 的情况下, 当前接收缓冲区中,有多少数据.
2)当前发送缓冲区中还有多少数据
谢谢
|
1, 标准做法是ioctl(fd, FIONREAD, &nbytes);
2, 标准做法是ioctl(fd, FIONWRITE, &nbytes);
2, 标准做法是ioctl(fd, FIONWRITE, &nbytes);
|
1)在不调用 recv 的情况下, 当前接收缓冲区中,有多少数据.
这个应该可以使用MSG_PEEK来获取。例如:
recv(socket_, buf, size, MSG_PEEK);
你可以试一下。
这个应该可以使用MSG_PEEK来获取。例如:
recv(socket_, buf, size, MSG_PEEK);
你可以试一下。