调用getsockopt
和SO_RCVBUF
将返回分配的套接字接收缓冲区大小。套接字接收队列中有多少个数据包或字节?
我很想知道在调用recv
或recvfrom
之前是否可以查询缓冲区中有多少数据包(或字节)如果有帮助,我可以解决Linux特定的问题。有问题的套接字是UDP,但我怀疑它对于TCP来说并不重要。
我问的原因只是为了测试和调试目的。我试图验证,如果我的电话setsocktop(SO_RCVBUF)设置足够的大小。知道接收缓冲区是否接近达到其极限将验证是否设置了足够的大小。
这是为UDP而不是TCP。发送者试图保持固定的比特率,但可以发送可能填满缓冲区的数据包突发。我试图找出接收缓冲区是否足以处理这个突发事件,或者如果我需要一个专用的线程与我自己的队列。最好不是。 – selbie 2013-05-07 23:51:14
在这种情况下,请参阅@ nos的答案。我肯定会使用专用线程。 – EJP 2013-05-08 01:42:39