Java网络编程从入门到精通(12):使用isReachable方法探测主机是否可以连通

简介: 本文为原创,如需转载,请注明作者和出处,谢谢! 上一篇:Java网络编程从入门到精通(11):使用NetworkInterface类获得网络接口信息    在J2SE5.0中的InetAddress类中增加了一个isReachable方法。

本文为原创,如需转载,请注明作者和出处,谢谢!

上一篇:Java网络编程从入门到精通(11):使用NetworkInterface类获得网络接口信息

    在J2SE5.0中的InetAddress类中增加了一个isReachable方法。可以使用这个方法来探测主机是否可以连通。这个方法有两个重载形式,它们的定义如下:

public   boolean  isReachable( int  timeout)  throws  IOException
public   boolean  isReachable(NetworkInterface netif,  int  ttl,  int  timeout)  throws  IOException

第一个重载形式有一个timeout参数,可以通过这个参数设置连接超时(单位:毫秒)。第二个重载形式多了两个参数:netifttl。通过netif参数可以使用一个NetworkInterface对象来确定客户端使用哪个网络接口来测试主机的连通性。ttl是指测试连通性过程中的最大连接跃点数(从客户机到达远程主机所经过的最大路由数就是最大连接跃点数,一个路由被称为一个跃点,在Windows网络连接中的“高级TCP/IP设置”对话框最下面可以设置接口跃点数),如果达到最大连接跃点数,还没找到远程主机,isReachable方法就认为客户机和远程主机之间是不可连通的。

isReachable方法是通过连接主机的echo端口来确定客户端和服务端是否可连通。但在Internet上使用这个方法可能会因为放火墙等因素而无法连通远程主机(实际上,远程主机是可以连通的),因此,isReachableInternet上并不可靠。但我们可以将isReachable方法应用于局域网中。

下一篇:
Java网络编程从入门到精通(13):使用Socket类接收和发送数据



国内最棒的Google Android技术社区(eoeandroid),欢迎访问!

《银河系列原创教程》发布

《Java Web开发速学宝典》出版,欢迎定购

目录
相关文章
|
9天前
|
Java
判断不为空和不为空串的方法java
判断不为空和不为空串的方法java
|
17小时前
|
网络协议 Dubbo Java
【网络编程】理解客户端和服务器并使用Java提供的api实现回显服务器
【网络编程】理解客户端和服务器并使用Java提供的api实现回显服务器
7 0
|
1天前
|
Java API 开发工具
java与Android开发入门指南
java与Android开发入门指南
8 0
|
1天前
|
Java
Java一分钟之-类与对象:面向对象编程入门
【5月更文挑战第8天】本文为Java面向对象编程的入门指南,介绍了类与对象的基础概念、常见问题及规避策略。文章通过代码示例展示了如何定义类,包括访问修饰符的适当使用、构造器的设计以及方法的封装。同时,讨论了对象创建与使用时可能遇到的内存泄漏、空指针异常和数据不一致等问题,并提供了相应的解决建议。学习OOP需注重理论与实践相结合,不断编写和优化代码。
15 1
|
1天前
|
Java
Java一分钟之-方法定义与调用基础
【5月更文挑战第8天】本文介绍了Java编程中的方法定义和调用,包括基本结构、常见问题和避免策略。方法定义涉及返回类型、参数列表和方法体,易错点有返回类型不匹配、参数错误和忘记返回值。在方法调用时,要注意参数传递、静态与非静态方法的区分,以及重载方法的调用。避免错误的策略包括明确返回类型、参数校验、理解值传递、区分静态和非静态方法以及合理利用重载。通过学习和实践,可以提升编写清晰、可维护代码的能力。
12 0
|
2天前
|
Java 编译器 对象存储
java一分钟之Java入门:认识JDK与JVM
【5月更文挑战第7天】本文介绍了Java编程的基础——JDK和JVM。JDK是包含编译器、运行时环境、类库等的开发工具包,而JVM是Java平台的核心,负责执行字节码并实现跨平台运行。常见问题包括版本不匹配、环境变量配置错误、内存溢出和线程死锁。解决办法包括选择合适JDK版本、正确配置环境变量、调整JVM内存参数和避免线程死锁。通过代码示例展示了JVM内存管理和基本Java程序结构,帮助初学者更好地理解JDK和JVM在Java编程中的作用。
14 0
|
3天前
|
搜索推荐 Java Shell
8大Java排序方法(由简入繁),有代码详解和原理指导
8大Java排序方法(由简入繁),有代码详解和原理指导
20 0
|
9天前
|
设计模式 算法 安全
Java多线程编程实战:从入门到精通
【4月更文挑战第30天】本文介绍了Java多线程编程的基础,包括线程概念、创建线程(继承`Thread`或实现`Runnable`)、线程生命周期。还讨论了线程同步与锁(同步代码块、`ReentrantLock`)、线程间通信(等待/通知、并发集合)以及实战技巧,如使用线程池、线程安全设计模式和避免死锁。性能优化方面,建议减少锁粒度和使用非阻塞算法。理解这些概念和技术对于编写高效、可靠的多线程程序至关重要。
|
9天前
|
Java API
【亮剑】Java的List,如何删除重复的元素,教你三个方法搞定!
【4月更文挑战第30天】本文介绍了三种Java中删除List重复元素的方法:1) 使用HashSet,借助其不允许重复值的特性;2) 利用Java 8 Stream API的distinct()方法;3) 对自定义对象重写equals()和hashCode()。每种方法都附带了代码示例,帮助理解和应用。
|
10天前
|
IDE Java 开发工具
基于Java程序设计的实验教学方法优化与实践
基于Java程序设计的实验教学方法优化与实践
21 1