As the transmit rate increases, the number of packets with more than one read from the scanner increases.
That sounds very much like Nagle is still operating. Are you sure that your setsockopt( TCP_NODELAY ) was successful? Try using getsockopt() after you've set it, to see what you get. Some stacks (MS for example) have this habit of responding success to unupported options.
Another possibility would be to set the SO_SNDBUF size to the same size as each write prior to writing. If your packets were fixed size you could just set it once, but with your max packet size 3 times the minimum, that probably wouldn't help.
In reply to Re^5: Sockets, autoflush, and TCP_NODELAY
by BrowserUk
in thread Sockets, autoflush, and TCP_NODELAY
by packetwhacker
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |