调用getsockoptwithSO_RCVBUF将返回套接字接收缓冲区的分配大小。
我很好奇,想知道是否有可能查询多少数据报数据包(或字节)实际上是在调用缓存之前,recv还是recvfrom?如果有帮助,我可以满足于 Linux 特定的答案。有问题的套接字是 UDP,但我怀疑它对 TCP 无关紧要。
我问的原因只是为了测试和调试目的。我正在尝试验证我对 setocktop(SO_RCVBUF) 的调用是否设置了足够的大小。知道接收缓冲区是否接近达到其限制将验证是否设置了足够的大小。
ioctlsocket(FIONREAD)在 Windows 上,您可以通过和获得所需的内容WSAIoCtl(FIONREAD),它们都返回完整缓冲数据的完整大小,即使缓冲了多个数据报消息也是如此。然而,Linux 上没有类似的东西。有ioctl(FIONREAD),它只返回下一个缓冲消息的大小。
| 归档时间: |
|
| 查看次数: |
2265 次 |
| 最近记录: |