История изменений
Исправление
Legioner,
(текущая версия)
:
FIN от клиента серверу означает, что клиент больше не будет посылать данных серверу. О том, что он не будет больше принимать данных, он серверу не сообщает, поэтому сервер про это не знает. Когда ты первое сообщение посылаешь, сервер его отсылает и возвращает тебе управление. После этого он получает пакет RST и соединение помечается, как разорванное. Дальнейшие попытки что-либо делать приведут к ошибке.
Исходная версия
Legioner,
:
Надо закрывать сокет на клиенте как положено, через shutdown. FIN от клиента серверу означает, что клиент больше не будет посылать данных серверу. О том, что он не будет больше принимать данных, он серверу не сообщает, поэтому сервер про это не знает. Когда ты первое сообщение посылаешь, сервер его отсылает и возвращает тебе управление. После этого он получает пакет RST и соединение помечается, как разорванное. Дальнейшие попытки что-либо делать приведут к ошибке.