Соединение выглядит живым — сокет открыт, ошибок нет. А потом вы пытаетесь что-то отправить и получаете таймаут после минуты тишины. Дело в том, что «соединение» в TCP — не провод между двумя точками, а договорённость, которую держат в памяти несколько устройств по пути, и любое из них может её забыть, не сказав об этом никому.
Подробнее →