2010-11-18 4 views
0

У меня есть клиент-серверное приложение, и я хочу знать, как я могу узнать, жив ли мой клиент или нет? Я думал о том, чтобы отправить пакет от моего клиента специально для этого каждый (скажем) 1 минуту, и если мой сервер не получит уведомление об этом пакете за 1 минуту, он закрывает это клиентское соединение.Как узнать, жив ли клиент или нет

Я также видел (как клиент, так и сервер локально для этого теста), что если клиент подключен к серверу, и я завершаю этот процесс (через диспетчер задач), мой сервер разбивается на это соединение (на самом деле он окружен попробуйте поймать, чтобы после этого закрыть соединение). Могу ли я использовать это? как часто сервер проверяет поток, чтобы узнать, подключен ли клиент?

+0

Думаю, вы получите более качественные ответы, если будете делиться некоторыми сведениями о том, как подключаются клиент и сервер, а также, возможно, почему подключение должно быть живым. –

+0

Зависит от того, для чего нужен сервер. – khachik

+0

Я собираю некоторые данные на клиенте с микроконтроллера и отправляю его на сервер. Соединение выполняется с помощью TcpClient. Сервер ожидает, что клиент отправит данные и отобразит их. Максимальное количество клиентов - 200, а ОС - x86, вероятно, winXP – Alex

ответ

1

Не зная какой-либо информации о архитектуре вашей системы и количестве ее клиентов, обычно не рекомендуется, чтобы сервер обращался к клиенту по разным причинам (брандмауэр, безопасность и т. Д.), Так что это обычно достигается с помощью «биения сердца» от клиент.

+0

и клиент и сервер будут работать на Windows x86, вероятно, XP, а количество клиентов - не более 200 .. – Alex

Смежные вопросы