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


相关推荐

  • vue(22)Vuex的安装与使用[通俗易懂]

    vue(22)Vuex的安装与使用[通俗易懂]前言每一个Vuex应用的核心就是store(仓库)。store基本上就是一个容器,它包含着你的应用中大部分的状态(state)。Vuex和单纯的全局对象有以下两点不同:Vuex的状态存

    2022年7月29日
    7
  • cv2.putText参数(Python venv)

    cv2.putText(img,str(i),(123,456)),font,2,(0,255,0),3)各参数依次是:图片,添加的文字,左上角坐标,字体,字体大小,颜色,字体粗细其中字体可以选择FONT_HERSHEY_SIMPLEXPython:cv.FONT_HERSHEY_SIMPLEXnormalsizesans-seriffontFONT_HERSHEY_P…

    2022年4月14日
    169
  • opencv的sift_opencv sift

    opencv的sift_opencv sift《SIFT原理与源码分析》系列文章索引:http://blog.csdn.net/xiaowei_cqu/article/details/8069548尺度空间理论自然界中的物体随着观测尺度不同有不同的表现形态。例如我们形容建筑物用“米”,观测分子、原子等用“纳米”。更形象的例子比如Google地图,滑动鼠标轮可以改变观测地图的尺度,看到的地图绘制也不同;还有电影中的拉伸镜头等等…

    2022年10月15日
    3
  • ERP和MES、QAS以及APS在制造企业信息化的了解

    ERP和MES、QAS以及APS在制造企业信息化的了解ERP系统企业ERP系统标准的定义来自其英文原意,即企业资源规划(EnterpiseResourcePlanning)。企业ERP系统是一个对企业资源进行有效共享与利用的系统,通过信息系统对信息进行充分整理、有效传递、使企业的资源在购、存、产、销、人、财、物等各个方面能够得到合理地配置与利用,从而实现企业经营效率地提高。从本质上讲,企业ERP系统时一套信息系统,是一种工具。系统设计中可集成某些管理思想与内容,可帮助企业提升管理水平。另外一种说法认为企业ERP系统是将企业所有资源进行整合集成管理,简单

    2022年6月28日
    33
  • 史上最全面的Neo4j使用指南「建议收藏」

    史上最全面的Neo4j使用指南「建议收藏」Neo4j图形数据库教程Neo4j图形数据库教程第一章:介绍Neo4j是什么Neo4j的特点Neo4j的优点第二章:安装1.环境2.下载3.开启远程访问4.测试第三章:CQL1.CQL简介2.Neo4jCQL命令/条款3.Neo4jCQL函数4.Neo4jCQL数据类型第四章:…

    2022年7月27日
    25
  • pycharmdjango项目实战_python如何创建新项目

    pycharmdjango项目实战_python如何创建新项目创建项目我们创建django项目有两种方式,命令行方式和使用pycharm工具创建,本文就介绍常用的pycharm工具创建首先点击django,输入项目的名称,选择创建好的虚拟环境,最后点击cre

    2022年8月7日
    8

发表回复

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

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