Насколько я знаю, это все, что нам нужно знать о полузакрытых соединениях.
Сервер закроет соединение, только если обнаружит, что клиент закрыл его (это может произойти, когда сервер собирается записать в сокет) или в конце запроса, если он не поддерживает connection: keep-alive
.
Клиент может отключиться в любое время, но он должен сообщить серверу, почему он отключается (time_out, запрос отмены). Но это не очень используется теми, кто пишет компоненты сокетов. Они просто закрывают розетку, когда им нужно заставить time_out
.
Но реализация клиента не является проблемой. Вы должны беспокоиться о реализации сервера, так как страдают от этих неожиданных отключений.
EDIT
Может быть, эти ссылки помогут вам.
Протокол управления передачей - функциональная спецификация
ПРОТОКОЛ КОНТРОЛЯ ПЕРЕДАЧИ