402d
@402d
начинал с бейсика на УКНЦ в 1988

Как получить/передать информацию, что сетевое соединение half-closed?

Часть вопроса к андроид гуру
Пишу под андроид эмулятор принтера. Проблема с определением момента, что клиент закрыл соединение.
Сейчас просто жду 5 секунд простоя канала.
А хочется сразу детектировать, что соединение закрыто на стороне клиента.
В идеале, что закрыто на половину (half-closed), т.е. он закончил передачу и ждет ответ.

К знатокам PHP и/или Node.JS
p.s. И есть ли возможность так закрывать соединение в PHP и NODE ?
  • Вопрос задан
  • 36 просмотров
Решения вопроса 1
402d
@402d Автор вопроса
начинал с бейсика на УКНЦ в 1988
Перебрав варианты shutdown как в PHP так и в андроиде я понял,
что нужного результата (решения) не получиться.

Для интернет сокета единственный способ определить, что он закрылся досрочно это неудача записи данных в него в обратном направлении.

Таким образом для однонаправленных соединений :
а) заранее известная длина
б) сигнатура завершения потока
в) FIN bit у последнего пакета ??? не смог найти способа его установить или прочитать через штатные абстракции
над сетевым соединением.

Так, что реализовал обратную отправку нескольких байтов в поток после чтения .
И по эксепшену досрочное завершение.
Штатное завершение осталось по таймайту. В течении 5 секунд ничего не получено.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы