检测到机器是否已连接/可用?

时间:2011-03-18 14:15:45

标签: delphi networking

如何检测当前网络中的机器是否已连接/可用。

当然它有几种用途,但我主要担心的是我的应用程序使用位于特定机器中的资源,如果它们不可用,它甚至不会尝试连接并使用本地资源。

4 个答案:

答案 0 :(得分:6)

你可以尝试对机器进行ping操作。查看这篇文章Making a PING with Delphi and the WMI

答案 1 :(得分:3)

ICMP回应请求(PING)将告诉您机器是否已启动且可在网络上访问。它不会告诉您机器上是否有可以连接的服务(启动并运行)。

最好的选择可能是尝试连接并在连接失败时回退到本地资源。

答案 2 :(得分:2)

只是尝试使用资源,如果出现错误,请使用本地资源。您尝试实施的策略存在一些问题,包括测试和使用之间的时间窗口,在此期间资源可能变得不可用,并且实际上并未测试资源的可用性,只有一些低级的东西,如TCP端口或堆栈的ICMP回声部分。通常,检测资源是否可用的最佳方法是尝试使用它,并从故障中恢复。你必须编写代码来处理那些失败,为什么要这两次呢?

答案 3 :(得分:0)

与尝试连接不同的策略:让服务器通过发送UDP广播或客户端监听的中间件(管道?)上的某种心跳信号告诉客户端服务是否仍然可用 - 发布/订阅沟通模式。