Sending 16 byte packets across a Unix datagram domain socket with SNDBUF left at the default on my box of 124928 (verified with getsockopt()
). Have also bumped the max_dgram_qlen
up to 512. For testing purposes my receiver is currently sleeping after binding to the Unix datagram domain socket.
When I fire up the sender I start receiving EAGAIN
errors after sending 423 packets (I am sending with the MSG_DONTWAIT
). At that point I have only sent about 7k (not including any headers), seems a bit early to have filled the SNDBUF given it's current settings.
To verify that it is indeed the SNDBUF that is limiting the sends I gradually bumped up the SNDBUF until it was able to hit the max_dgram_qlen
(actually it hit 513). The SNDBUF value I had to set for this was 75177 (151554 as returned by getsockopt()
).
Any ideas would be greatly appreciated as it feels as though I'm missing something obvious here.