C++ 使用Indy comps检查网络中的远程主机状态

C++ 使用Indy comps检查网络中的远程主机状态,c++,c++builder,indy,indy10,c++builder-2010,C++,C++builder,Indy,Indy10,C++builder 2010,我有一个与Firebird服务器一起工作的客户机-服务器应用程序。每次客户端连接到服务器时,他们(客户端应用程序)都不会检查是否存在到服务器的网络连接,因此,此时,当服务器计算机关闭或服务停止时,我的应用程序有时会冻结,所以首先,我需要检查远程主机是否已打开或在某个端口上有任何正在侦听的内容 在建立连接之前,我需要检查它,并确保服务器和服务正在使用Indy组件运行 有什么想法吗?此外,我还可以使用IcmpClient ping远程主机,然后建立连接,但哪种方法是最理想的?如果您只想检查是否可以访

我有一个与Firebird服务器一起工作的客户机-服务器应用程序。每次客户端连接到服务器时,他们(客户端应用程序)都不会检查是否存在到服务器的网络连接,因此,此时,当服务器计算机关闭或服务停止时,我的应用程序有时会冻结,所以首先,我需要检查远程主机是否已打开或在某个端口上有任何正在侦听的内容

在建立连接之前,我需要检查它,并确保服务器和服务正在使用Indy组件运行


有什么想法吗?此外,我还可以使用IcmpClient ping远程主机,然后建立连接,但哪种方法是最理想的?

如果您只想检查是否可以访问服务器计算机,可以执行“ping”检查。但是,如果您想检查某个特定TCP端口是否打开,那么找到该端口的唯一方法是实际执行正确的连接,这将导致“冻结”程序,而如果该端口上没有人侦听,则连接将超时。

对!如果([]->ReplyStatusType==rsTimeOut){ShowMessage(“主机不可访问。服务器未运行”);否则{…}},我将以这种方式执行