Проверьте состояние удаленного хоста в сети, используя Indy comps

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

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

Любые идеи? также я могу использовать IcmpClient для проверки связи с удаленным хостом, а затем установить соединение, но какой способ является наиболее оптимальным?


person Suhrob Samiev    schedule 29.11.2012    source источник


Ответы (1)


Если вы просто хотите проверить, доступен ли серверный компьютер, вы можете сделать «пинг», чтобы проверить это. Однако, если вы хотите проверить, открыт ли конкретный TCP-порт, то единственный способ узнать это — выполнить правильное соединение, что приводит к «зависанию» программы, в то время как время соединения истекает, если нет никого. прослушивание на этом порту.

person Some programmer dude    schedule 29.11.2012
comment
Правильно! Я делаю так if ([]->ReplyStatusType==rsTimeOut) { ShowMessage("Host is unreachable. Server is not running"); else {...} } - person Suhrob Samiev; 29.11.2012