Это особенность TCP - TCP надежен, поэтому, если есть какие-либо проблемы с сетью (такие как потеря сигнала Wi-Fi, как вы описываете), данные будут буферизироваться и удерживаться, пока проблема не исчезнет, и в этот моментданные будут отправлены снова, и соединение возобновится.
Вы можете немного изменить или настроить это поведение, изменив значения времени ожидания TCP - если соединение вообще не может отправлять данные в течение периода ожидания (обычно 10 минут по умолчанию), затем соединение будет отключено.В зависимости от того, какой API вы используете, вы можете вместо этого изменить время ожидания на несколько секунд (хотя будьте осторожны, если оно слишком короткое, что может привести к разрыву соединений из-за более кратковременных проблем в сети.)
Также кажется, что у вас есть проблема в коде, когда приостановленное соединение полностью блокирует устройство - это, вероятно, вызвано удержанием некоторой блокировки, которую вы не должны делать при попытке прочитать данные из соединения.Обязательно снимите ВСЕ блокировки перед выполнением чтения (или записи) сокета.Если вам удастся решить эту проблему, вы можете обнаружить, что вас не волнует тайм-аут TCP.