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),它只返回下一个缓冲消息的大小.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |