И отправитель, и получатель (и, возможно, посредники) будут буферизовать данные.
Успешная отправка данных не является гарантией того, что принимающая сторона получила их.
Обычно выполняет запись в блокировкусокет, не будет блокироваться, пока в буфере отправляющей стороны есть место.
Как только буфер отправителя заполнится, запись будет блокироваться, пока в ней не останется место для всей записи.
Если запись выполнена частично успешно (получатель закрыл сокет, выключил его или произошла ошибка), тогда запись может вернуть меньше байтов, чем вы предполагали.Последующая запись должна давать ошибку или возвращать 0 - такие условия не являются необратимыми в сокетах TCP.
Обратите внимание, что если последующая передача () или запись () дает ошибку, то некоторые ранее записанные данные могут быть потеряны навсегда,Я не думаю, что есть реальный способ узнать, сколько данных действительно поступило (или все равно было подтверждено).