As Eric Ekman replied, the system will buffer a certain amount of data, even if you are not reading it boring.
After the buffer becomes more full, the TCP / IP implementation of the recipient will reduce the size of the allowed recipient size, as a result of which the peer will send smaller pieces of data, effectively throttling the transmission. When the buffer is full, the window size drops to zero, and the peer is allowed to send additional data. Even if this happens, the data will not be lost because the peer will resume sending packets after flushing the receive buffer.
A proper TCP / IP implementation ensures that no data is simply lost on skipping - the connection is either reliable, working, or completely lost, as indicated by read return -1.
source share