Отсоедините сетевой кабель
Это, вероятно, не делать то, что вы думаете, что он делает.
Точное поведение может различаться между операционными системами, но принципиально & преднамеренно перерыв в базовом носителе не означает разрыв в TCP-соединении, которое в настоящее время использует его.
Перед началом работы с Windows 7 вся сетевая карта закрыта, когда ее кабель cat5 потянут, который закрыл все TCP-соединения, проходящие через него. Это может ввести людей в заблуждение, полагая, что они наблюдают за закрытием соединения. Удаленный TCP-протокол, однако, наблюдает только за отключением TCP. И сохраняет соединение еще в ESTABLISHED
Чтобы полностью закрыть TCP-соединение, пользователи Windows могут использовать TCPView для идентификации и последующего закрытия соответствующего сокета. Пользователи Linux могут использовать fuser
с тем же эффектом при некоторых прыжках с обручем. В противном случае используйте простой прокси TCP между клиентом с сервером и убейте этот процесс, чтобы закрыть TCP-соединение из браузера.
Эти пункты в сторону, надежно осуществив закрытие соединения, все равно необходимо использовать периодический пинг для уровня приложения, чтобы проверить доступность вашего сервера, поскольку живой HTTP-сеанс не обязательно содержит какие-либо прямые TCP-соединения.
С нетерпением жду HTML5 - WebSocket ведет себя больше как его базовое TCP-соединение, и будет уведомлять вас о закрытии.
: o Я не знал, что отсоединить кабель Ethernet не приведет к немедленному отключению. Да ты прав. Я должен иметь клиентский интерфейс для отслеживания подключения к моему серверу. – bili