加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 套接字接收队列中有多少个数据包或字节?

发布时间:2020-12-13 23:05:01 所属栏目:Linux 来源:网络整理
导读:使用SO_RCVBUF调用getsockopt将返回已分配的套接字接收缓冲区大小. 我很想知道在调用recv或recvfrom之前是否可以查询缓冲区中实际有多少数据报包(或字节)?如果它有帮助,我可以满足于Linux特定的答案.有问题的套接字是UDP,但我怀疑它对TCP无关紧要. 我问的原
使用SO_RCVBUF调用getsockopt将返回已分配的套接字接收缓冲区大小.

我很想知道在调用recv或recvfrom之前是否可以查询缓冲区中实际有多少数据报包(或字节)?如果它有帮助,我可以满足于Linux特定的答案.有问题的套接字是UDP,但我怀疑它对TCP无关紧要.

我问的原因仅仅是测试和调试目的.我正在尝试验证我对setsocktop(SO_RCVBUF)的调用是否设置了足够的大小.知道接收缓冲区是否接近其极限将验证是否设置了足够的大小.

解决方法

在Windows上,您正在寻找的是ioctlsocket(FIONREAD)和WSAIoCtl(FIONREAD),它们都返回完整缓冲数据的完整大小,即使缓冲了多个数据报消息也是如此.但是,在Linux上没有相应的东西.有ioctl(FIONREAD),它只返回下一个缓冲消息的大小.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读