Calling getsockopt
with SO_RCVBUF
will return the allocated size of the socket receive buffer.
I am curious to know if it is possible to query for how many datagram packets (or bytes) are actually in the buffer prior to calling recv
or recvfrom
? If it helps, I can settle for a Linux specific answer. The socket in question is UDP, but I suspect it wouldn't matter for TCP.
The reason why I ask is only for testing and debugging purposes. I'm trying to validate if my call to setsocktop(SO_RCVBUF) is setting a sufficient enough size. Knowing if the receive buffer was ever close to reaching its limit would validate if a sufficient size was set.