Скорее всего, другой конец закрыл соединение. Возможно, что первая запись не удалась, так как write () не гарантирует доставку. Вы получаете Исключение только тогда, когда он знает, что другой конец не слушает.
isClosed
означает; Я закрыл соединение
isOutputShutdown
означает; я отключил выход
isConnected
означает; это когда-либо было связано
Единственный способ обнаружить, что соединение действительно установлено, - это получить ответ от другого конца, сообщающий, что он получил ваши данные. например ответ на сердцебиение. Без этого ответа (который должен быть частью вашего протокола) вы не можете быть уверены, что другой конец получил его.