Java InetAddress.isReachable() 超时

2023-11-21

我试图查明我的网络上的特定主机是否可以访问。 我的java代码如下:

InetAddress adr = InetAddress.getByName(host);
if(adr.isReachable(3000)){
    System.out.println(host + " is reachable");
}

这工作得很好,但是如果我将超时降低到 500 毫秒,它将不再指定主机可达。我计划循环检查相当多的主机,因此较短的超时时间非常重要。如果我从 Windows 命令行手动 ping 主机,则需要不到 10 毫秒。

那么为什么 Java 方法需要更高的超时才能成功呢? 有没有其他方法可以使用isReachable()?


这取决于您所说的可达性是什么意思。如果您只找到侦听特定端口的可访问主机,则可以打开到该端口的套接字连接(例如,通过检查端口 80 查找所有 HTTP 服务器)。使用 InetAddress.isReachable() 取决于实现。根据 javadoc,“典型的实现将使用 ICMP ECHO REQUEST”。使用 Java NIO(非阻塞 I/O)进行“已知端口”检查(如 http(80)、smb (445) 等)可以获得更高的性能。我公司有一款产品,使用“已知端口”扫描来查找运行 Telnet 或 SSH 的机器,使用 NIO,我们可以扫描大约 5000 个 IP/秒。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java InetAddress.isReachable() 超时 的相关文章

随机推荐

  • PHP 中变量的默认值?

    我对此进行了搜索 但找不到我的问题的答案 当声明变量时没有值 如下所示 var public aVar 变量的值是否未知 就像在许多语言中一样 即之前内存中的任何内容 或者变量默认设置为null 声明时没有值的变量和未定义 未声明的变量是n
  • 在 Eclipse CDT 中找不到头文件

    我正在尝试使用 Eclipse CDT 8 8 1 构建一个使用外部库 Casablanca 的项目 在 Mac 操作系统上 正如预期的那样 第一次构建运行返回了 cpprest http client h 文件未找到 错误 然后 我继续添
  • 如何在Excel 2010中按计数创建条形图?

    无论出于何种原因 我都无法让它正常工作 我有一列值 其中有很多 A B C 和 D 我想做一个图表来显示 这是我们有多少个 A 这是我们有多少 B 这是我们有多少 C 这是我们有多少 D 由于某种原因 我执行 插入 gt 3d 柱形图 然后
  • 安装 ODBC 驱动程序 heroku

    我无法摆脱这个错误 django db utils Error 01000 01000 unixODBC 驱动程序 Manager 无法打开库 ODBC Driver 13 for SQL Server 文件不存在 找到 0 SQLDriv
  • CSS 字体粗细选项

    我没有得到 CSS font weight 中 100 到 900 的值 我看到 100 到 500 是常规尺寸 600 到 900 是粗体 只有两种字体粗细 尝试过 h1 font size 60px 等 我缺少什么吗 正如 Rich 所
  • java - 使用正则表达式分割字符串

    我需要在有逗号的地方分割一个字符串 但这取决于逗号放置的位置 举个例子 考虑以下 C 75 user is active A B user is using app A B D 78 我想要String split 函数将它们分开 如下所示
  • 在 PHP 中显示一个字节的 8 位

    我想知道是否有一种简单的方法可以在 PHP 中显示 8 位字节 或字符 例如 对于 ASCII 编码 字符 0 应返回 0011 0000 感谢您的输入 这应该可以完成这项工作 bin decbin ord char bin str pad
  • 凹面 GL_POLYGON 不着色?

    当我尝试使用时遇到问题GL POLYGON在OpenGL中 我不知道如何解释这一点 但我的所有顶点都与第一个顶点相连 当我尝试为对象着色时出现问题 我想画一个简单的物体 void TOP float x1 float y1 float x2
  • 如果我返回文字而不是声明的 std::string 会发生什么?

    假设我们有一个效用函数 std string GetDescription return The description 返回字符串文字可以吗 是否隐式创建std string对象被复制 我想过总是像这样返回它 std string Get
  • 如何删除MDI父窗体上的灰色背景?

    我想做的是在标记为 mdi 容器的表格上画一些玻璃 但是 一旦设置了 IsMdiContainer 表单就会将 MdiClient 添加到其控件列表中 此时 父窗体发生了一些情况 几乎就像一个深灰色面板停靠在 MdiClient 所在的整个
  • 在 ipython 笔记本上导入 imblearn python 包时出现问题

    我安装了https github com glemaitre imbalanced learn在 Windows powershell 上使用pip install conda and github 但是当我在 iPython 笔记本上时
  • 如何在我的网络应用程序上安全地接受并运行用户的代码?

    我正在开发一个基于 django 的 Web 应用程序 它接受 python 文件作为输入 其中包含一些函数 然后在后端我有一些列表作为参数通过用户的函数传递 这将生成单个值输出 生成的结果将是用于一些进一步的计算 用户文件中的函数如下所示
  • 在设置中添加计划任务?

    我有一个小的 C 应用程序 我必须为此应用程序创建一个计划任务 我有一个安装该应用程序的安装程序 最好的情况是我可以在安装时设置此 Windows 计划任务 知道是否可能和 或如何 非常感谢 有一个任务计划程序托管包装在 codeplex
  • 将列折叠/连接/聚合为每个组中的单个逗号分隔字符串

    我想根据两个分组变量聚合数据框中的一列 并用逗号分隔各个值 这是一些数据 data lt data frame A c rep 111 3 rep 222 3 B rep 1 2 3 C c 5 10 data A B C 1 111 1
  • Python 在 if 语句中的“=”上引发语法错误 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我正在编写一个程序 它接受用户输入并将其与不同的命令字
  • 为什么一致性实现的行为会有所不同?具有内部链接的不完整数组类型?

    示例代码 t0 c static int arr int main void return arr 0 static int arr 0 调用 gcc t0 c std c11 Wall Wextra
  • 发布多个具有相同代码库的 Android 应用程序

    你好 我想向 Android 市场发布多个应用程序 这些应用程序都基于代码库进行了轻微的定制 我不能只更改 AndroidManifest xml 文件中的包标识符 因为还有其他一些事情依赖于此 例如操作标识符等 基于具有相同代码库的一个
  • 在 Laravel 的 withCount() 方法中使用 DISTINCT

    使用 Laravel Lumen eloquent 我可以得到这样的计数关系 User withCount views gt get 这将使用 SQL select users select count from views where u
  • 将 .Net 4.5 网站部署到 IIS 7.5 服务器

    我们正在使用 Teamcity 为我们的网站进行持续集成构建 并且刚刚将我们的网站升级到 Net 4 5RC 该应用程序在我的机器上的 IIS Express 中构建和运行 并在我安装了 NEt 4 5RC 的构建服务器上构建 但是当我们将
  • Java InetAddress.isReachable() 超时

    我试图查明我的网络上的特定主机是否可以访问 我的java代码如下 InetAddress adr InetAddress getByName host if adr isReachable 3000 System out println h