热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java检查服务器的联通

通常检查服务器联通使用ping命令,java代码实现如下:方法一:JAVA里的PING是在JDK1.5后用了新的函数isreachab

通常检查服务器联通  使用ping命令,java代码实现如下:

方法一:

JAVA里的PING是在JDK 1.5后用了新的函数isreachable()函数去实现,但是结果通常返回false

原因:此方法用于测试是否可以达到该地址。实现尽最大努力试图到达主机,但防火墙和服务器配置可能阻塞请求,使其在某些特定的端口可以访问时处于不可到达状态。如果可以获得权限,则典型实现将使用 ICMP ECHO REQUEST;否则它将试图在目标主机的端口 7 (Echo) 上建立 TCP 连接。

public static boolean isOnline(String hostname) {try {InetAddress ia;boolean isonline = false;ia = InetAddress.getByName(hostname);// 例如:www.baidu.comisonline = ia.isReachable(1500); //超时时间1.5秒return isonline;} catch (UnknownHostException e) {// TODO Auto-generated catch blockSystem.out.println("address:" + hostname + " is not unknown");} catch (IOException e) {// TODO Auto-generated catch blockSystem.out.println("address:" + hostname + " is not reachable");}return false;}

方法二(推荐):

使用socket 对端口做
TELNET操作, 结果比较准确

public static boolean isOnline(String hostname, int port) {Socket server = null;try {server = new Socket();InetSocketAddress address = new InetSocketAddress(hostname, port);//例如 www.baidu.com 80server.connect(address, 3000);System.out.println("ok!");return true;}catch (UnknownHostException e) {System.out.println("wrong!");e.printStackTrace();} catch (IOException e) {System.out.println("wrong");e.printStackTrace();}return false;}





推荐阅读
author-avatar
Gvyi_262
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有