关于套接字缓冲区
我们知道,对每个套接字,系统都会分配一个发送缓冲区和接收缓冲区,
而且这个缓冲区的长度我们可以设置。
我的问题是,我如何知道:
1)在不调用 recv 的情况下, 当前接收缓冲区中,有多少数据.
2)当前发送缓冲区中还有多少数据
谢谢
------解决方案--------------------1)在不调用 recv 的情况下, 当前接收缓冲区中,有多少数据.
这个应该可以使用MSG_PEEK来获取。例如:
recv(socket_, buf, size, MSG_PEEK);
你可以试一下。
------解决方案--------------------1, 标准做法是ioctl(fd, FIONREAD, &nbytes);
2, 标准做法是ioctl(fd, FIONWRITE, &nbytes);