java - 建议的 Ping 和 URL 连接超时是多少?

标签 java network-programming timeout connection

我目前正在做一些网络编程,并且有几个关于超时的问题。

执行 ping 操作时是否有建议的超时时间?

此外,进行 URL 连接时是否有建议的超时时间?

编辑:就我而言,通过 ping,我只是想查看设备是否连接到网络。通过 URL 连接,我尝试打开一个 URL 并从中获取文本。

谢谢

最佳答案

这取决于您要连接的位置。

举个例子:如果您连接到同一数据中心甚至同一机架中的另一个盒子,则只有很少的跳转(路由器、交换机、防火墙...),并且通常应在第二个下建立连接 -因此不需要 30 秒超时(我将其设置为 5 秒)。

如果您连接到另一个大陆的盒子,那就完全不同了。数据包丢失、路由和连接拥挤可能会减慢连接速度。 30 秒或 60 秒的超时听起来很公平。

此外,您应该考虑您的客户是否真的想等待 60 秒。再举一个例子,如果您连接到 Web 服务以便处理来自用户的 HTTP 请求。等待 60 秒没有多大意义,因为用户无论如何都会取消/离开请求。此外,这种阻塞服务调用可能会导致大量等待线程填满服务器的线程池 - 这不是一件好事。在这种情况下,我会将超时设置为 10 秒,这样一旦 Web 服务变慢,就会冒着向用户抛出“服务不可用”或类似页面的风险。

关于java - 建议的 Ping 和 URL 连接超时是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2426877/

相关文章:

linux - 等待机器启动时超时!! Vagrant-虚拟盒子

java - 检查输入以查看 Java 中的输入是否为 double

network-programming - 如何从 Android 应用程序将 UDP 数据包发送到 MAC 地址?

redirect - 重定向的上下文超时而不是使用客户端超时?

java 扫描仪在 .next() 不应该阻塞时阻塞

c# - 使用 MixedRealityToolkit-Unity 在自定义消息中发送字节数组

javascript - 具有 sleep /超时功能的 jQuery 请求循环

java - 如何在不使用 Mockito 超时的情况下测试使用 ExecutorService 的代码?

java - 如何删除框架的 Activity 标题栏?

java - 如何在 NetBeans 中创建文件夹以进行组织?