你说的是基于端口的设置 但是现在很多是基于进程管理的 也就是说 你启动一个java 去发送ICMP,这个和内置的应用服务肯定是不一样的 http://blog.163.com/crazy20070501@126/blog/static/128659465201210910537998/ 你看下其中的“ 如果是添加自己的应用程序许可规则,可以通过下面的“允许允许另一程序”按钮进行添加,方法跟早期防火墙设置类似,点击后如下图” 你也可以参考这里 http://stackoverflow.com/questions/2448666/how-to-do-a-true-java-ping-from-windows/2448719#2448719 中间人家是这么说的 isReachable() will use ICMP ECHO REQUESTs if the privilege can be obtained, otherwise it will try to establish a TCP connection on port 7 (Echo) of the destination host.
如果你isReachable不行 而ping可以 有可能是你的防火墙 禁止了你的java发送ICMP报文 需要设置下
ping直接使用icmp协议去连接端口7.两个不一样,如果对端对连接协议做了限制,结果也不一样。
所以两个是完全不一样的,一个TCP协议检测,一个ICMP协议检测。
你说的是基于端口的设置 但是现在很多是基于进程管理的 也就是说 你启动一个java 去发送ICMP,这个和内置的应用服务肯定是不一样的
http://blog.163.com/crazy20070501@126/blog/static/128659465201210910537998/
你看下其中的“ 如果是添加自己的应用程序许可规则,可以通过下面的“允许允许另一程序”按钮进行添加,方法跟早期防火墙设置类似,点击后如下图”
你也可以参考这里
http://stackoverflow.com/questions/2448666/how-to-do-a-true-java-ping-from-windows/2448719#2448719
中间人家是这么说的
isReachable() will use ICMP ECHO REQUESTs if the privilege can be obtained, otherwise it will try to establish a TCP connection on port 7 (Echo) of the destination host.