Why is it assumed that send may return with less than requested data transmitted on a blocking socket?
Solution 1:
The thing that is missing in above description is, in Unix, system calls might get interrupted with signals. That's exactly the reason blocking send(2)
might return a short count.