Здравствуйте, vsb, Вы писали:
vsb>man read
vsb>On success, the number of bytes read is returned (zero indicates end of file)
vsb>В случае сокета это означает, что соединение закрыто. Непонятно, в чём тут проблема? Прочитал 0, закрыл соединение со своей стороны и всё.
кстати ты прав

но почему для закрытых сокетов есть отдельные коды ошибок?