проблема такая, существует сокетное соединение клиент-сервер, клиент шлёт серверу пакеты сервер их обрабатывает, всё вроде бы нормально работает, но возникает проблема при отключении клиента, каким образом можно узнать что клиент отключился, желательно не используя опросы??
1. клиент может отправлять сообщение серверу "это последнее, закрывай соединение". 2. сервер может отключать клиентов по таймауту.
эти два подхода понятны, но я спрашивал не совсем об этом. если происходит какая то ошибка связи, падение интернета у клиента и т.п. передаётся ли в секет какое нибудь событие или всё равно нужно опрашивать клиентов и ждать ответа??
у socket_select() есть параметр для работы с сокетами, у которых были "исключения". но я с ним не работал. можете попробовать и написать)
Не, исключения для других целей. Все очень просто - вам сообщили, что можете читать из этого сокета, но чтение возвращает false? Значит клиент отвалился.