使用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 倒立摆的simulink模型搭建

    倒立摆的simulink模型搭建倒立摆的simulink模型搭建1.倒立摆基本背景:倒立摆,InvertedPendulum,是典型的多变量、高阶次,非线性、强耦合、自然不稳定系统。倒立摆系统的稳定控制是控制理论中的典型问题,在倒立摆的控制过程中能有效反映控制理论中的许多关键问题,如非线性问题、鲁棒性问题、随动问题、镇定、跟踪问题等。因此倒立摆系统作为控制理论教学与科研中典型的物理模型,常被用来检验新的控制理论和…

    2022年8月18日
    22
  • isNotBlank_participate用法介绍

    isNotBlank_participate用法介绍isNotEmpty将空格也作为参数,isNotBlank则排除空格参数StringUtils方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。除了构造器,StringUtils中一共有130多个方法,并且都是static的,所以我们可以这样调用Str

    2022年8月12日
    7
  • php网页如何发布_php问题

    php网页如何发布_php问题如何正确发布PHP代码几乎每一个PHP程序员都发布过代码,可能是通过FTP或者rsync同步的,也可能是通过svn或者git更新的。一个活跃的项目可能每天都要发布若干次代码,但是现实却是很少有人注意其中的细节,实际上这里面有好多坑,很可能你就在坑中却浑然不知。一个正确实现的发布系统至少应该支持原子发布。如果说每一个版本都表示一个独立的状态的话,那么在发布期间,任何…

    2022年9月27日
    1
  • REST API和SOAP API之间的区别

    REST API和SOAP API之间的区别TheRepresentationalStateTransfer(REST)架构风格不是可以购买的技术,也不是可以添加到软件开发项目中的库。REST是一种世界观,将信息提升为我们构建的体系结构的第一流元素。RoyFielding博士的论文“架构风格和基于网络的软件架构设计”介绍并整理了用于描述“RESTful”系统的思想和术语。这是一份学术文件,但通过提供RESTful架构的基础,可…

    2022年7月13日
    16
  • oracle中sequence是什么意思_consequence的用法

    oracle中sequence是什么意思_consequence的用法在oracle中sequence就是序号,每次取的时候它会自动增加。sequence与表没有关系。1、CreateSequence首先要有CREATESEQUENCE或者CREATEANYSEQUENCE权限。创建语句如下:sql;”>CREATESEQUENCEseqTestINCREMENTBY1–每次加几个STARTWITH1–从1开始计数NOMAXva…

    2022年10月19日
    1
  • 三菱modbusRTU通讯设置表_modbus通讯实例

    三菱modbusRTU通讯设置表_modbus通讯实例点击箭头处“工业之家”,选择“关注公众号”!三菱PLC接线图干货此次主要描述的是关于三菱FX5U模块硬件的接线实例,主要有以下几个方面:电源AC、DC接线、输入输出接线、模拟量接线。不同原理不同的接线方式,现在来给大伙仔细讲解分享!AC电源接线例:漏型输入[-公共端]时的电源接线例源型输入[+公共端]时的电源接线例使用FX5-1PSU-5V时的外部接线例(漏型输入[-公共端])…

    2025年10月19日
    7

发表回复

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

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