На каком языке написан сервер, не имеет значения. Это может быть написано во что угодно, клиент не знает и не должен заботиться (в общем).
A read
вернет -1
, когда достигнет конца потока, как задокументировано. Конец потока происходит, когда другая сторона закрыла эту сторону сокета (TCP).
(На стороне C, предполагая систему POSIX, сокет может быть закрыт либо системным вызовом close(2)
, либо системным вызовом shutdown(2)
. Последний позволяет программе закрывать только одну "сторону" соединение, т.е. закройте сторону записи, но оставьте сторону чтения открытой. close
выключает обе стороны.)