当我尝试用网络IP ping我自己的电脑时,我得到java.net.UnknownHostException的原因可能是什么?

当我尝试用网络IP ping我自己的电脑时,我得到java.net.UnknownHostException的原因可能是什么?,java,tomcat,web-applications,unknown-host,Java,Tomcat,Web Applications,Unknown Host,我尝试使用以下代码行ping我自己的PC服务器: InetAddress.getByName(serverResourceLocator).isReachable(5000) // where serverResourceLocator is 192.168.43.187/server/ping?ip=Adarsh-PC/192.168.43.187&time=1355482205301 这里192.168.43.187是我的电脑的网络IP,我通过命令ipconfig Wirele

我尝试使用以下代码行ping我自己的PC服务器:

InetAddress.getByName(serverResourceLocator).isReachable(5000)

// where serverResourceLocator is  192.168.43.187/server/ping?ip=Adarsh-PC/192.168.43.187&time=1355482205301
这里
192.168.43.187
是我的电脑的网络IP,我通过命令
ipconfig

Wireless LAN adapter Wireless Network Connection:

Connection-specific DNS Suffix  . :
Link-local IPv6 Address . . . . . : fe80::f5be:cfa7:5c38:efff%14
IPv4 Address. . . . . . . . . . . : 192.168.43.187
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.43.1
在我的PC上,我运行tomcat作为服务器。为什么我会得到
未知后异常


需要的是主机名,而不是您提供的(半)URL。引用JavaDoc:

主机名可以是机器名,如“java.sun.com”,也可以是其IP地址的文本表示形式。如果提供了文字IP地址,则只检查地址格式的有效性

(我的重点)

只要尝试
InetAddress.getByName(“192.168.43.187”).isReachable(5000)
就可以了

我突然想到,您已经编写了一个servlet,它将ping一个IP。如果它(例如)通过HTTP响应返回延迟,那么您应该使用(例如)包以编程方式获得该响应;有几个线程等等来实现这一点

干杯,

需要的是主机名,而不是您提供的(半)URL。引用JavaDoc:

主机名可以是机器名,如“java.sun.com”,也可以是其IP地址的文本表示形式。如果提供了文字IP地址,则只检查地址格式的有效性

(我的重点)

只要尝试
InetAddress.getByName(“192.168.43.187”).isReachable(5000)
就可以了

我突然想到,您已经编写了一个servlet,它将ping一个IP。如果它(例如)通过HTTP响应返回延迟,那么您应该使用(例如)包以编程方式获得该响应;有几个线程等等来实现这一点


干杯,serverResourceLocator更像一个URL,而需要一个主机名:

试一试


serverResourceLocator
更像一个URL,而需要一个主机名:

试一试


但是我必须ping到一个可以处理所有事情的servlet。对此我能做些什么呢?这将是对servlet的HTTP请求,而不是网络ping。尝试一些简化HTTP请求的方法,但这将是一个不同的问题。但是我必须ping到一个可以处理所有事情的servlet。对此我能做些什么呢?这将是对servlet的HTTP请求,而不是网络ping。尝试一些简化HTTP请求的方法,但这将是一个不同的问题。
java.net.UnknownHostException: 192.168.43.187/server/ping?ip=Adarsh-PC/192.168.43.187&time=1355482205301
at java.net.InetAddress.getAllByName0(InetAddress.java:1140)
at java.net.InetAddress.getAllByName0(InetAddress.java:1109)
at java.net.InetAddress.getAllByName(InetAddress.java:1072)
at java.net.InetAddress.getByName(InetAddress.java:969)
at internet.CommunicationWithServer.PingTheServer.ping(PingTheServer.java:35)
at internet.CommunicationWithServer.PingTheServer.access$000(PingTheServer.java:11)
at internet.CommunicationWithServer.PingTheServer$1.run(PingTheServer.java:21)
at java.lang.Thread.run(Thread.java:619)
InetAddress.getByName("192.168.43.187").isReachable(5000)