У меня есть php-сервер, который прослушивает 1 клиент C#.PHP-сервер сокетов, проверьте, жив ли клиент
Когда соединение установлено, оно сохраняется в живых до тех пор, пока клиентская команда «quit» не уничтожит сервер PHP.
Но когда клиент C# отключается без команды «quit» (то есть: нажатие кнопки закрытия (x) в форме окна), сервер просто продолжает слушать и не может получить какое-либо другое соединение от этого клиента.
Есть ли способ проверить со стороны сервера (PHP), если соединение все еще жив с клиентом.
Мой код PHP сервер основан на exemple1 из: http://php.net/manual/en/sockets.examples.php
Если кто-то заинтересован в воспроизведении поведения ошибка/ошибки, вставить код из exemple1: http://php.net/manual/en/sockets.examples.php, подключение по Telnet с удаленного клиента в локальной сети, отключите клиента провод ... PHP сервер будет торчать вечно, никакое новое соединение не будет принято
(простите за мой бедный английский)
больше обновлений. При использовании шпатлевки для telnet, если я закрываю кнопку X, соединение закрывается должным образом на PHP, но если я отключу провод ethernet машины-замазки, сервер PHP просто зависает. –
@Vincemcman: Обновлен ответ в ответ на ваш комментарий. –
Когда вы нажимаете кнопку X на замазке, которая запускает событие закрытия или выключения с соединением, если вы преждевременно отключены, он так и не получил ответ, поэтому он ожидает, что в ближайшее время будет отправлено больше данных. – OpensaurusRex