我正在尝试确定网络上的设备是否正在使用 Java 运行 Web 服务器。为此,我使用 Apache 的 HttpClient。我发送一个请求,如果设备运行网络服务器,我就会收到响应 - 非常简单。
但是,如果网络服务器没有运行,那么我观察到会发生两件事:
当我收到“连接被拒绝”异常与根本没有响应时,是否可以推断出有关我尝试连接的设备的任何信息?
Edit:
只是为了澄清:我正在做的是针对本地网络上的设备运行它。这意味着 NAS 盒、路由器、Windows 计算机、iPad 等。有些会有嵌入式 Web 服务器,有些则没有。大多数不会有防火墙。
我还 100% 确定该设备已启动并正在运行。
您无法 100% 确定地推断出任何事情,但是:
- 连接超时probably表示主机/端口已受防火墙保护,或者主机已“关闭”。
- 连接被拒绝probably意味着主机没有在您尝试连接的端口上运行任何服务。
其他需要考虑的可能性包括:
话虽如此,按照当前(2023)StackOverflow 标准这个问题是题外话。您应该在 ServerFault 上询问有关网络和诊断网络错误的问题。这不是一个编程问题。
这是关于 ServerFault 的相关问题:
- 为什么有些连接超时而另一些则被拒绝? https://serverfault.com/questions/521359
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)