как сервер узнает, что клиент все еще подключен? - PullRequest
1 голос
/ 18 марта 2011

клиент устанавливает соединение с процессом сервера. откуда сервер знает, что клиент все еще подключен?

Например, сервер является веб-сервером, а клиент - браузером. Предположим, что требуется, чтобы сервер всегда хотел знать, что клиент подключен.

Как это реализовано / спроектировано?

Ответы [ 3 ]

0 голосов
/ 18 марта 2011

Я предполагаю, что вы говорите о сокетах.

Сервер будет знать, что клиент все еще подключен, потому что, когда клиент отключается, соединение будет разорвано.Сервер будет уведомлен об этом как часть обычной работы TCP, и, следовательно, связанный сокет будет помечен как больше не связанный с соединением.

Когда процесс сервера переходит к чтению или записи из этогосокет, им сообщат, что соединение больше не существует.

0 голосов
/ 18 марта 2011

Предполагая, что используется TCP, вы получите нулевое считывание байта в сокете, когда другая сторона отключится. Это означает, что соединение закрыто.

Если сервер записывает данные в сокет, когда соединение закрыто, он также получит уведомление о том, что соединение закрыто, но как это уведомление выдается, зависит от реализации.

0 голосов
/ 18 марта 2011

HTTP-сессии могут помочь.

...