java实现ping功能,是否到达地址的返回值为什么总是false?

问题描述

这是测试代码:import java.io.IOException;import java.net.InetAddress;import java.net.UnknownHostException;public class TestPing {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubString host = "www.baidu.com";int timeOut = 3000;try {boolean statu = InetAddress.getByName(host).isReachable(timeOut);System.out.println(statu);} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}} 问题补充:谢谢你的回答; 我想知道刚才我写的这种为什么不行呢,这种看起来简单,是不是还有其它什么内在问题呢?

解决方案

换种方式实现吧,代码如下:引用 /* * * 能否ping通IP地址 * * @param server IP地址 * * @param timeout 超时时长(毫秒) * * @return true能ping通 */ public static boolean pingServer(String server, int timeout) { BufferedReader in = null; Runtime r = Runtime.getRuntime(); String pingCommand = "ping " + server + " -n 1 -w " + timeout; try { Process p = r.exec(pingCommand); if (p == null) { return false; } in = new BufferedReader(new InputStreamReader(p.getInputStream())); String line = null; while ((line = in.readLine()) != null) { if (line.startsWith("Reply from")) { return true; } } } catch (Exception ex) { ex.printStackTrace(); return false; } finally { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } return false; }
解决方案二:
你采用的这种方式因为防火墙或者是服务器的配置可能导致请求阻塞,导致操作超时。

时间: 2024-10-04 12:25:38

java实现ping功能,是否到达地址的返回值为什么总是false?的相关文章

多线程- 我的java难道是盗版吗(调用有返回值的函数无响应)

问题描述 我的java难道是盗版吗(调用有返回值的函数无响应) boolean flag = pcSystem.returnTenderResult(bidDocu,tenderDocu); 我在自定义pcSystem类中调用一个具有boolean返回值的函数returnTenderResult(synchronized) 这条语句的上一条语句都会执行,而returnTenderResult内方法一定概率上不执行 (方法内的第一条语句都没有执行,还不涉及方法内具体逻辑),系统涉及了多线程, 这是

java反射机制 getreturntype是如何知道方法返回值类型的

问题描述 java反射机制 getreturntype是如何知道方法返回值类型的 各位大神,小弟有一事不明 我们有一个变量,就是方法名 java反射机制 getReturnType()是如何知道我要定义的这个方法的返回值类型. 它怎么知道我要的这个方法应该返回什么值?? 解决方案 java编译后的.class文件里面记录了类的全部信息,包括方法的返回值.参数.异常等.程序运行时,.class文件会被加载到运行时数据区,java反射 机制就是从类型信息中获取装载类解析后的详细信息的. 解决方案二:

c#调用java写的wsdl,接收不到返回值

问题描述 c#调用java写的wsdl,接收不到返回值 c#引用一个java写的wsdl,调用服务里的一个返回值为string 的方法,报以下异常: {"接收对 http://172.17.175.162/swsso/services/SsoWebService 的 HTTP 响应时发生错误.这可能是由于服务终结点绑定未使用 HTTP 协议造成的.这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致.有关详细信息,请参见服务器日志."} http://172.17.

java中一个void修饰的方法无返回值,那么有是不是返回一个空对象,有空对象这种说法吗

问题描述 java中一个void修饰的方法无返回值,那么有是不是返回一个空对象,有空对象这种说法吗 java中一个void修饰的方法无返回值,那么有是不是返回一个空对象,有空对象这种说法吗 解决方案 加入你有一个对象 Object 里面有个方法:public void method1(); 那你调用这个方法的时候就是 object.method1(); 那么这里就表示 没有返回值. 所以我里面的void就是 :没有返回值,这个方法不能做他用! 对比 有一个object 里面有一个方法: publ

Java程序调用带参数的shell脚本返回值

Java程序调用带参数的shell脚本返回值 首先来看看linux中shell变量($#,$@,$0,$1,$2)的含义解释 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表.如"$*"用「"」括起来的情况.以"$1 $2 - $n"的形式输出所有参数. $@ 所有参数列表.如"

java中除了非void方法有返回值需要用到return语句外

问题描述 java中除了非void方法有返回值需要用到return语句外 java中除了非void方法有返回值需要用到return语句外,还有其他什么语句需要retrun语句 因为我看程序源码的时候看到一个方法有两条return 语句,我看来看去只发现这段程序代码只有一个方法,其中还有if....else if语句还有try....catch语句. 解决方案 如果直接return就跳出了这个方法,下面的程序不需用执行,否则还会继续下面的逻辑;代码有时候需要捕捉特定的异常给用户一定的反馈,判断异常

java实现获取用户的MAC地址_java

方法一:将本机地址与局域网内其他机器区分开来 /** * 根据IP地址获取mac地址 * @param ipAddress 127.0.0.1 * @return * @throws SocketException * @throws UnknownHostException */ public static String getLocalMac(String ipAddress) throws SocketException, UnknownHostException { // TODO Au

Java的网络功能与编程 一

编程|网络 Java的网络功能与编程徐迎晓(上海大学计算中心25#)                       摘  要:Java语言是Internet上最热门的编程语言,本文针对        Java的网络功能,对Java从网络上获取图象.声音.        HTML文档及文本文件等编程方法作了初步的介绍,同        时介绍了动态获取网络上资源的方法作了介绍.文中        提供了大量简明易懂的实例. 关键词:Java:Internet:网络     Java语言是Intern

JAVA的网络功能与编程 二

编程|网络     五.显示网络上其他HTML文档     利用Java提供的getAppletContext().showDocument(URL)可以 显示其他结点的HTML文档,同前面的显示网络上其他结点的图象, 有两种格式,下面各举一例:                       ●程序8   格式一 import java.applet.*; import java.awt.*; import java.net.*; public class showdoc extends Appl