I want to account for a possible scenario where clients of my TCP/IP stream socket service send data to my service faster than it manages to move the data to its buffers (I am talking about application buffers, naturally) with recv
and work with it.
So basically, what happens in such scenarios?
The way I see it, some facility beneath my service has to receive pieces of the incoming stream and store these somewhere until I issue 'recv', right? Most certainly the operating system. What happens if it runs out of memory to store the pieces while my service is not receiving them fast enough?
I don't want to re-open old questions, but I can't seem to find an answer to this seemingly obvious one?