如何使用Java检查服务?我找到了这篇文章,但这仅用于检查主机名。
我的问题是如何检查端口x上的服务是否在运行,例如ex myhostname:8080或or myhostname:8099,我可能正在这些端口上运行服务n或p,但是如果手动进行操作,则可以通过网络看到它,如何在java中达到相同的效果?
myhostname:8080
myhostname:8099
该代码段发送了一个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; }
如果需要检测正在运行的服务,则需要读取发送的第一个字节,并将其与您知道每个服务应发送的字节进行比较。这可能需要来回几次传递。