使用InetAddress

使用InetAddress17.2Java的基本网络支持  Java为网络支持提供了java.net包,该包下的URL和URLConnection等类提供了以编程方式访问Web服务的功能,而URLDecoder和URLEncoder则提供普通字符串和application/x-www-form-urlencodedMIME字符串相互转换的静态方法。  17.2.1使用InetAddress

大家好,又见面了,我是你们的朋友全栈君。

17.2 Java的基本网络支持

  Java为网络支持提供了java.net包,该包下的URL和URLConnection等类提供了以编程方式访问Web服务的功能,而URLDecoder和URLEncoder则提供普通字符串和 application/x-www-form-urlencoded MIME 字符串相互转换的静态方法。

  17.2.1 使用InetAddress

  Java提供了InetAddress类来代表IP地址,InetAddress下还有2个子类:Inet4Address、Inet6Address,它们分别代表Internet Protocol version 4(IPv4)地址和Internet Protocol version 6(IPv6)地址。

  InetAddress类没有提供构造器,而是提供了如下两个静态方法来获取InetAddress实例:

  getByName(String host):根据主机获取对应的InetAddress对象。

  getByAddress(byte[] addr):根据原始IP地址来获取对应的InetAddress对象。

  InetAddress还提供了如下三个方法来获取InetAddress实例对应的IP地址和主机名:

  String getCanonicalHostName():获取此 IP 地址的全限定域名。

  String getHostAddress():返回该InetAddress实例对应的IP地址字符串(以字符串形式)。

  String getHostName():获取此 IP 地址的主机名。

  除此之外,InetAddress类还提供了一个getLocalHost()方法来获取本机IP地址对应的InetAddress实例。

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

  程序清单:codes/17/17-2/InetAddressTest.java

  public class InetAddressTest

  {

  public static void main(String[] args)

  throws Exception

  {

  //根据主机名来获取对应的InetAddress实例

  InetAddress ip = InetAddress.getByName(”www.oneedu.cn”);

  //判断是否可达

  System.out.println(”oneedu是否可达:” + ip.isReachable(2000));

  //获取该InetAddress实例的IP字符串

  System.out.println(ip.getHostAddress());

  //根据原始IP地址来获取对应的InetAddress实例

  InetAddress local = InetAddress.getByAddress(new byte[]

  {127,0,0,1});

  System.out.println(”本机是否可达:” + local.isReachable(5000));

  //获取该InetAddress实例对应的全限定域名

  System.out.println(local.getCanonicalHostName());

  }

  }

  上面程序简单地示范了InetAddress类几个方法用法,InetAddress类本身并没有提供太多功能,它代表一个IP地址对象,是网络通信的基础,在后面介绍中将大量使用该类。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152241.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Springboot自动装配原理_一体细针阀原理

    Springboot自动装配原理_一体细针阀原理1.什么是SpringBoot?  对于spring框架,我们接触得比较多的应该是springmvc、和spring。而spring的核心在于IOC(控制反转对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系)和DI(依赖注入IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(DependencyInjection,依赖注入)来实现的。比如对象A需要操作数据库,以前我们总是要在A中自己编写代码来获得一个Connection对象,有了

    2022年8月20日
    5
  • java中的策略模式(策略模式java)

    前言当代码中出现多重if-else语句或者switch语句时。弊端之一:如果这样的代码出现在多处,那么一旦出现需求变更,就需要把所有地方的if-else或者switch代码进行更改,要是遗漏了某一处,那么程序就会出错。弊端之二:代码逻辑难以理解。卫语句卫语句的使用,并不能改变前言说的弊端:一旦需求更改,需要修改所有使用更改需求的if-else代码块。不过使用卫语句可以让自己或者代码…

    2022年4月18日
    55
  • webstorm激活码3月最新在线激活

    webstorm激活码3月最新在线激活,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    128
  • JPA 2.0 中的动态类型安全查询

    JPA 2.0 中的动态类型安全查询

    2021年9月2日
    50
  • 2021 pycharm专业版永久激活码破解方法

    2021 pycharm专业版永久激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    266
  • android studio sdk安装失败「建议收藏」

    android studio sdk安装失败「建议收藏」androidstudiosdk安装失败原因电脑只有一个c盘是无法下载sdk的,软件设置不允许在c盘安装sdk

    2022年7月21日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号