`
seara
  • 浏览: 626988 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

阅读更多

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

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

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

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->publicbooleanisReachable(inttimeout)throwsIOException
publicbooleanisReachable(NetworkInterfacenetif,intttl,inttimeout)throwsIOException

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

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

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



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

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

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

分享到:
评论

相关推荐

    keil常见错误.pdf

    main.c(35): warning: #128-D: loop is not reachable from preceding code main.c(54): warning: #1-D: last line of file ends without a newline initSpi.c(6): error: #268: declaration may not appear after ...

    is-reachable-cli:检查主机名是否可访问

    检查主机名是否可访问 安装 &gt; npm install is-reachable-cli --global 用法 &gt; is-reachable --help Example &gt; is-reachable beatfreaker.github.io :check_mark: ︎Reachable 有关的 此CLI实用程序使用此模块...

    keil错误集V1.0.pdf

    main.c(35): warning: #128-D: loop is not reachable from preceding code 原因,前面有一个while(1){ …….} 二、 main.c(54): warning: #1-D: last line of file ends without a newline 少了一个回车在}之后 改...

    网络编程总结(IOS)

    网上收集的ios 网络编程总结。 开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息。如果没有处理它们,是不会通过Apple的审(我们的)查的。 Apple 的 例程 Reachability 中介绍了取得/检测网络状态...

    JPing:适用于Java的ICMP Ping实用程序

    Java Ping概述这是一个简单的工具,可让您查看是否可以通过ICMP ping而不是Java随附的TCP方法访问远程计算机: InetAddress . getByName(ip) . isReachable(timeout); 在某些Windows机器上的实例中,我注意到使用...

    is-reachable:检查服务器是否可访问

    可达的检查服务器是否可访问在Node.js和浏览器(带有捆绑器)中工作。 Node.js版本将与目标端口进行TCP握手。 它尝试检测路由器将请求重定向到其自身的情况。 浏览器版本受以下事实限制:浏览器无法连接到任意端口。...

    is-port-reachable:检查本地或远程端口是否可访问

    是可到达端口的检查本地或远程端口是否可访问安装 $ npm install is-port-reachable用法 const isPortReachable = require ( 'is-port-reachable' ) ;( async ( ) =&gt; {console . log ( await isPortReachable ( 80 ,...

    Node.js-reachable-urls检查文本的网址是否可以访问

    reachable-urls:检查文本的网址是否可以访问

    Java异步发送文件demo

    java写的异步文件发送程序,由于win7带外数据的发送存在问题无法作连通性测试,因此本程序只做了简单的isReachable()连通性测试。程序采用了文件长度-&gt;文件名字-&gt;文件内容的顺序发送方式,没有对非文件进行甄别.

    MythTV-Service-API

    检查服务器是否可达: boolean isReachable = org.mythtv.services.api.ServerVersionQuery.isServerReachable(" 6544)"); 获取服务器版本 ApiVersion version = org.mythtv.services.api.ServerVersionQuery....

    linux部署redis集群遇到的问题

    1、在java程序中,连接不上redisCluster。 报错信息: no reachable node in cluster 原因:创建集群时,使用了127.0.0.1,要改为公网ip才行。 redis-cli –cluster create 127.0.0.1:7001 127.0.0.1:7002 解决方法...

    IPv6.rar

    例:IPV6地址为--FF12::1234:5678/64 对应的组播MAC地址为--3333:1234:5678 0x3333为固定前缀 例:所有节点的组播地址:FF02::0001 对应的组播MAC地址:3333:0000:0001 任意播地址Anycast address 应用在one-to...

    clojure-inetaddress:Clojure InetAddress。 java.net.InetAddress 类包装器

    java.net.InetAddress 类包装器。 用法 获取主机的 IP 地址,给定主机名: =&gt; (by-name "github.com") # 获取本地主机地址: =&gt; (localhost) # 检查地址地址是否可达: =&gt; (reachable? (by-name "server-in-...

    domain_checks:使用未绑定的DNS解析器执行DNS记录检查和主机连接检查

    使用Unbound DNS Resolver进行DNS记录检查和主机连接检查。 正在取得 有3个主要类负责通过Web获取响应:dns_resolver.py/Resolver、dmarcian_api_client.py/DmarcianClient和ip_reachable.py/Reacher

    reachable-urls:检查URL是否可以在文本中找到:detective:

    可达网址检查网址是否可以通过文本访问。安装$ npm install --save reachable-urls用法命令行界面Usage $ reachable-urls [ &lt; file&gt; ...]Options --compact Show only not-reachable URLs --help Show help --silent...

    port-reachable-action

    连接到该主机名。 默认为"localhost" 。 reverse 如果端口不可达,则结果为true。 默认"false" 。 needFail 如果结果不符合要求,则执行失败操作。 默认"false" 。 产出 result 对或错 用法示例 uses : ...

    连续双峰分段仿射系统的分段椭球可达集估计方法_A piecewise ellipsoidal reachable set est

    连续双峰分段仿射系统的分段椭球可达集估计方法_A piecewise ellipsoidal reachable set estimation method for continuous bimodal piecewise affine systems.pdf

    TOMCAT不能正常启动总结

    NULL 博文链接:https://tianqiushi.iteye.com/blog/2401236

    reachable-url:给定一个URL,尽可能快地解决它

    不要使用此模块来消耗body因为它并不总是可用。安装$ npm install reachable-url --save用法const reachableUrl = require ( 'reachable-url' )reachableUrl . isReachable ( await reachableUrl ( '...

    resin-jvm 调优

    在多cpu机器上使用多线程技术可以显著的提高java应用程序的可扩展性。 3.Sun HotSpot 1.4.1 JVM堆大小的调整 Sun HotSpot 1.4.1使用分代收集器,它把堆分为三个主要的域:新域、旧域以及永久域。Jvm生成的所有新...

Global site tag (gtag.js) - Google Analytics