有没有合乎逻辑的方法来检查服务器可用性?

Is there a logical way to check server Availability?

提问人:vijay shankar 提问时间:11/18/2023 最后编辑:vijay shankar 更新时间:11/19/2023 访问量:61

问:

我已经完成了 C 语言应用程序的开发,它工作正常。

但是为了接收更新,应用程序会连接到远程服务器以检查是否有任何更新。如果有的话,那么它会启动下载过程并实现它们,很简单。

但我想,如果远程服务器以某种方式没有启动,那么?那么,在连接接收任何更新之前,是否有一种可行且合乎逻辑的方法来检查服务器是否已启动并运行?

我尝试使用 CreateProcessA win32 api 实现它,为 ping.exe 创建一个进程以检查服务器是否启动,但似乎并不完美。有什么聪明的想法吗?

C WinAPI 服务器 正常运行时间

评论

3赞 ikegami 11/18/2023
不需要单独的机制。检查服务器是否启动是通过发出请求并查看您是否在一定时间内得到答案来完成的。您已经在提出请求。只需提供合适的超时即可。
0赞 Allan Wind 11/18/2023
理想情况下,您需要为 和 for / etc(假设是 TCP 服务器)单独超时,以检测繁忙或挂起的服务器。如果服务器未运行,连接将失败并显示错误 ()。connectreadrecvECONNREFUSED
0赞 Allan Wind 11/18/2023
请使用 win32 标记此内容。
1赞 IInspectable 11/19/2023
服务器可以处理 ping 请求,但对其他资源的后续请求会失败。如上所述,只需执行请求,并准备好请求出错(由于超时或错误响应)。
1赞 Raymond Chen 11/20/2023
此外,即使您确认服务器已启动并执行 ping,它也可能在您发送请求之前关闭。或者,它可能会在您第一次请求(检测更新可用)之后和第二次请求(下载更新)之前关闭,甚至在下载过程中关闭。

答: 暂无答案