gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:23:30 25 4
gpt4 key购买 nike

使用SO_RCVBUF 调用getsockopt 将返回套接字接收缓冲区的分配大小。

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

之所以这么问,只是为了测试和调试。我正在尝试验证我对 setsocktop(SO_RCVBUF) 的调用是否设置了足够大的大小。了解接收缓冲区是否接近其限制将验证是否设置了足够的大小。

最佳答案

在 Windows 上,您可以通过 ioctlsocket(FIONREAD)WSAIoCtl(FIONREAD) 获得您正在寻找的内容,它们都返回完整缓冲数据的完整大小,即使缓冲了多个数据报消息。但是,Linux 上没有等效项。有 ioctl(FIONREAD),它只返回下一条缓冲消息的大小。

关于linux - 套接字接收队列中有多少数据包或字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16427842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com