Примечание: Я предполагаю, что здесь TCP.
Из возвращаемого значения я понимаю, что клиент сумел записать 4 байта в буфер отправки, прежде чем узнает, что сервер закрыл его.конец или иным образом исчез.Если он исчез без надлежащего закрытия, единственный способ узнать это - тайм-аут отправки.Следующие write
, shutdown
или close
после этого получат ошибку.
Если вы хотите получать быстрое уведомление об исчезновении конечных точек без необходимости постоянно отправлять данные, вы можете активировать опцию keepalive сокета,В Linux это были бы setsockopt(..., SOL_SOCKET, SO_KEEPALIVE, ...)
и TCP_KEEPIDLE
, TCP_KEEPINTVL
, TCP_KEEPCNT
на уровне SOL_TCP
.