Как получить/передать информацию, что сетевое соединение half-closed?
Часть вопроса к андроид гуру
Пишу под андроид эмулятор принтера. Проблема с определением момента, что клиент закрыл соединение.
Сейчас просто жду 5 секунд простоя канала.
А хочется сразу детектировать, что соединение закрыто на стороне клиента.
В идеале, что закрыто на половину (half-closed), т.е. он закончил передачу и ждет ответ.
К знатокам PHP и/или Node.JS
p.s. И есть ли возможность так закрывать соединение в PHP и NODE ?
Перебрав варианты shutdown как в PHP так и в андроиде я понял,
что нужного результата (решения) не получиться.
Для интернет сокета единственный способ определить, что он закрылся досрочно это неудача записи данных в него в обратном направлении.
Таким образом для однонаправленных соединений :
а) заранее известная длина
б) сигнатура завершения потока
в) FIN bit у последнего пакета ??? не смог найти способа его установить или прочитать через штатные абстракции
над сетевым соединением.
Так, что реализовал обратную отправку нескольких байтов в поток после чтения .
И по эксепшену досрочное завершение.
Штатное завершение осталось по таймайту. В течении 5 секунд ничего не получено.