从java检查服务可用性

Lon*_*don 2 java sockets

如何使用java检查服务?我发现了这篇文章,但它仅用于检查主机名.

我的问题是如何检查端口x运行的服务,例如:myhostname:8080或者myhostname:8099,我可能正在这些端口上运行服务n或p但是如果我手动执行它会通过web可见,我怎样才能在java中实现相同的效果?

mar*_*cog 5

该片段发送ping,您无法操纵以达到您想要的效果.只需打开一个套接字并捕获任何异常.

bool success = true;
try {
  (new Socket(host, port)).close();
} catch (UnknownHostException e) {
  // unknown host
  success = false;
} catch (IOException e) {
  // io exception, service probably not running
  success = false;
}
Run Code Online (Sandbox Code Playgroud)

如果您需要检测正在运行的服务,则需要读取发送的第一个字节,并将它们与您知道每个服务应发送的内容进行比较.这可能需要来回几次.