Java网络编程基础 InetAddress类的使用

22、探索InetAddress类:Java网络编程的核心 本文详细介绍了Java中用于处理IP地址和进行网络操作的InetAddress类。内容涵盖获取主机名和IP地址、区分IPv4与IPv6地址、主机可达性检测、本地主机信息查询以及实际应用案例,帮助开发者全面掌握InetAddress在网络编程中的使用。 阅读详情
参数传递给流套接字类和自寻址套接字类构造器或非构造器方法。InetAddress描述了32位或64位IP地址,要完成这个功能,InetAddress类主要依靠两个支持类Inet4Address 和 Inet6Address,这三个类是继承关系,InetAddrress是父类,Inet4Address 和 Inet6Address是子类。

  InetAddress类在网络API套接字编程中扮演了一个重要角色。参数传递给流套接字类和自寻址套接字类构造器或非构造器方法。InetAddress描述了32位或64位IP地址,要完成这个功能,InetAddress类主要依靠两个支持类Inet4Address 和 Inet6Address,这三个类是继承关系,InetAddrress是父类,Inet4Address 和 Inet6Address是子类。

  由于InetAddress类只有一个构造函数,而且不能传递参数,所以不能直接创建InetAddress对象,比如下面的做法就是错误的:

  InetAddress ia = new InetAddress ();

  但我们可以通过下面的5个工厂方法创建来创建一个InetAddress对象或InetAddress数组:

  . getAllByName(String host)方法返回一个InetAddress对象的引用,每个对象包含一个表示相应主机名的单独的IP地址,这个IP地址是通过host参数传递的,对于指定的主机如果没有IP地址存在那么这个方法将抛出一个UnknownHostException 异常对象。

  . getByAddress(byte [] addr)方法返回一个InetAddress对象的引用,这个对象包含了一个Ipv4地址或Ipv6地址,Ipv4地址是一个4字节数组,Ipv6地址是一个16字节地址数组,如果返回的数组既不是4字节的也不是16字节的,那么方法将会抛出一个UnknownHostException异常对象。

  . getByAddress(String host, byte [] addr)方法返回一个InetAddress对象的引用,这个InetAddress对象包含了一个由host和4字节的addr数组指定的IP地址,或者是host和16字节的addr数组指定的IP地址,如果这个数组既不是4字节的也不是16位字节的,那么该方法将抛出一个UnknownHostException异常对象。

  . getByName(String host)方法返回一个InetAddress对象,该对象包含了一个与host参数指定的主机相对应的IP地址,对于指定的主机如果没有IP地址存在,那么方法将抛出一个UnknownHostException异常对象。

  . getLocalHost()方法返回一个InetAddress对象,这个对象包含了本地机的IP地址,考虑到本地主机既是客户程序主机又是服务器程序主机,为避免混乱,我们将客户程序主机称为客户主机,将服务器程序主机称为服务器主机。

  上面讲到的方法均提到返回一个或多个InetAddress对象的引用,实际上每一个方法都要返回一个或多个Inet4Address/Inet6Address对象的引用,调用者不需要知道引用的子类型,相反调用者可以使用返回的引用调用InetAddress对象的非静态方法,包括子类型的多态以确保重载方法被调用。

  InetAddress和它的子类型对象处理主机名到主机IPv4或IPv6地址的转换,要完成这个转换需要使用域名系统,下面的代码示范了如何通过调用getByName(String host)方法获得InetAddress子类对象的方法,这个对象包含了与host参数相对应的IP地址:

  InetAddress ia = InetAddress.getByName ("www.javajeff.com"));

  一但获得了InetAddress子类对象的引用就可以调用InetAddress的各种方法来获得InetAddress子类对象中的IP地址信息,比如,可以通过调用getCanonicalHostName()从域名服务中获得标准的主机名;getHostAddress()获得IP地址,getHostName()获得主机名,isLoopbackAddress()判断IP地址是否是一个loopback地址。

  List1 是一段示范代码:

  // InetAddressDemo.java

  import java.net.*;

  class InetAddressDemo

  {

  public static void main (String [] args) throws UnknownHostException

  {

  String host = "localhost";

  if (args.length == 1)

  host = args [0];

  InetAddress ia = InetAddress.getByName (host);

  System.out.println ("Canonical Host Name = " +

  ia.getCanonicalHostName ());

  System.out.println ("Host Address = " +

  ia.getHostAddress ());

  System.out.println ("Host Name = " +

  ia.getHostName ());

  System.out.println ("Is Loopback Address = " +

  ia.isLoopbackAddress ());

  }

  }

  当无命令行参数时,代码输出类似下面的结果:

  Canonical Host Name = localhost

  Host Address = 127.0.0.1

  Host Name = localhost

  Is Loopback Address = true

  InetAddressDemo给了你一个指定主机名作为命令行参数的选择,如果没有主机名被指定,那么将使用localhost(客户机的),InetAddressDemo通过调用getByName(String host)方法获得一个InetAddress子类对象的引用,通过这个引用获得了标准主机名,主机地址,主机名以及IP地址是否是loopback地址的输出.

 
汽车测试工程师工作准则 希望这份综合的工作规范能帮助你更好地规划职业发展。如果你对某个特定领域,比如自动驾驶测试或智能座舱测试,有进一步的兴趣,我很乐意提供更具体的信息。 阅读详情

相关推荐

JavaScript China城市联动

中国全城市的地址省,市,县 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title></title> <script src="jquery.js"></script> <script src="json.js"></...

唯唯同学 2241

InetAddress类

InetAddress对象

qq_43456605的博客 4074

VirtualBox创建虚拟机(为安装Ubuntu桌面系统)

Ubuntu的安装非常灵活。但是万变不离其宗,归纳起来,无非就是以下3种:(1)用户可以下载完整的ISO镜像文件,将其转移到各种介质上面,例如DVD或者U盘,然后以该介质引导系统进行安装。(2)用户可以下载一个非常小的网络安装器,利用该安装器引导系统进行在线安装。(3)用户可以将Ubuntu安装到一个U盘中,随身携带。为了便于读者学习,本节将介绍通过完整的ISO镜像文件安装Ubuntu。其他的安装方式将在后面介绍。

夏天又到了的专栏 2688

InetAddress类常用方法

Java提供InetAddress类来封装IP地址或域或名。InetAddress类有两个子类:Inet4Address和Inet6Address,分别用于封装4个字节的IP地址和6个字节的IP地址。InetAddress内部对地址数字进行隐藏,用户不需要了解实现地址的细节,只需了解如何调用相应的方法即可。 InetAddress类无构造方法,因此不能直接创建其对象,而是通过该类的静态方法创建一个InetAddress对象或InetAddress数组。InetAddress类常用方法如下 InetAddr

weixin_57604284的博客 7645

Matlab中eig内置函数转为C语言

本文记录一下如何将MATLAB中的eig函数转为C语言,即通过C语言求解矩阵的特征值与特征向量。[V,D]=eig(Rx)中V为矩阵Rx的特征向量,D为矩阵的特征值。其中Rx维度为12*12的复矩阵。 首先在MATLAB端创建入口函数保存为eigvalue.m: 打开MATLAB Coder,添加入口函数: 3.在定义输入类型窗口中,需要添加输入数据来训练...

u011441044的博客 3516

Microsemi Libero系列教程(六)——Identify片上逻辑分析仪的使用

文章目录FPGA如何进行在线调试关于Microsemi片上逻辑分析仪FPGA片上逻辑分析仪原理预期效果0.准备一个创建好的Libero工程1.新建identify工程,并添加想要监测的信号2.管脚分配,编译下载3.设置触发类型4.IICE逻辑分析仪核资源占用 系列教程:Microsemi Libero系列教程 FPGA如何进行在线调试 对于嵌入式系统来说,如单片机,进行硬件级程序调试时,通常采用的是JLink/ST-Link调试器,在线调试的方式来获取程序实时运行的状态,可以观察程序运行流程、各种变量的值

whik1194的博客 1万+

Java中InetAddress的使用

Java具有较好的网络编程模型/库,其中非常重要的一个API便是InetAddress。在在java.net网络编程中中有许多类都使用到了InetAddress,包括ServerSocket,Socket,DatagramSocket等等。你要进行网络编程就得有IP地址、域名、主机等要素,而一个InetAddress里就保存着IP地址,同时还可能包含主机名,并且它提供了主机名 - IP地址互转的方法(比简单的域名解析还牛有木有),本来主要就介绍它看看能够怎么玩。Java提供InetAddress类(有Ine

赶路人儿 4425

61、增益调度控制器:原理、建模与调优

本文详细介绍了增益调度控制器的原理、建模方法和调优流程。增益调度是一种针对非线性系统的控制策略,通过在不同工作点使用不同的线性控制器实现全局控制。文章涵盖了在Simulink中使用Control System Toolbox模块建模的具体步骤,以及如何利用systune进行增益调度表的调优。同时,还讨论了实际应用中的注意事项、典型案例(如化学反应器和飞机控制),并与其它控制方法进行了对比。最后,文章展望了增益调度控制器的未来发展趋势,包括与人工智能的结合、多目标优化调优以及实时调优能力的提升。

rgv234567的博客 186

Java网络编程——InetAddress类

目录1.节点(NODE)2.Internet地址或IP地址3.域名系统2>详细了解InetAddress类1.创建新的InetAddress对象程序一: 显示某地址的程序 程序二:查找本地机器的地址2.InetAddress的常用方法1.小DEMO2.给定地址,找到主机名称3.找到本地机器的IP地址3>.InetAddress缓存4>.地址类型5>.测试可达性 6>.Object方法7>. Inet4Address和Inet6Address连接到Internet的设备称为节点。计算机节点称为主机每个节点或者

weixin_62017112的博客 4487

30分钟用 Restful ABAP Programming(RAP)模型开发一个支持增删改查的 Fiori 应用

2016年时,Jerry曾经写过一系列关于SAP Fiori Smart Template(现在更名为Fiori Elements了)的博客,介绍了所谓的MDD开发方法论 - Metadata Driven Development,即通过开发维护了对应annotation(注解)的CDS view,结合SAP WebIDE,能够花费最少的编程代价,就能够在短时间内获得一个支持增删改查的Fiori应......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 5952

Yocto系列讲解[入门篇]36 - 编译arm虚拟机qemuarm

玩一下qemuarm,因为之前用的x86架构

fulinux的博客 2571

InetAddress 方法总结

【代码】InetAddress 方法介绍。

张紫娃的博客 1259

什么是 SAP PCE?

SAP Private Cloud Edition 是一种基于云计算的部署模式,它结合了公有云的灵活性和私有云的安全性,为企业提供了量身定制的云服务。在 PCE 环境中,SAP 托管和维护客户的应用系统(如 SAP S/4HANA、SAP SuccessFactors 或 SAP BW/4HANA),同时客户拥有更高的定制化权限。专属环境:每个客户在云中拥有独立的资源,这保障了更高的安全性和性能。全面托管:SAP 提供基础架构、系统管理和更新服务,降低了客户的运维成本。灵活扩展。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2246

Java网络编程之IP地址和InetAddress类

Java语言的优势之一是Java程序能访问网络资源。Java提供一系列的类支持Java程序访问网络资源。 TCP/IP协议和IP地址 为了进行网络通信,通信双方必须遵守通信协议.目前最广泛使用的是TCP/IP协议,它是Internet中各方所遵循的公共协议.TCP(Transport Control Protocol)是一种传输控制协议,IP(Internet Protocol)是一种网际协议...

Java入门基础教程 875

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java-网络编程InetAddress类的使用

java 网络编程中,可以使用InetAddress来获取目标网站的地址和本地的ip InetAddress类用于表示IP地址,比如在进行Socket编程时,就会用到该类。 InetAddress没有公共构造方法,我们只能使用它提供的静态方法来构建一个InetAddress类实例 #getLocalHost() : 返回本机主机地址 #getAllByName(String host) : 从指...

BLOG OF PETERMAOSX. 556

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

快速上手Java网络编程(一)基础介绍、URL类和InetAddress类

快速上手Java网络编程(一)基础介绍、URL类和InetAddress类 最近在学Java网络编程,里面涉及到的一些概念比较容易搞混,于是决定写博客记录整理一下,方便日后复习,如有发现错误之处,还请在评论区指正。 一、 前置知识 (1)Java基本语法 (2)需要对Java输入输出流有基本的认识(其实不懂也能看得懂) (3)了解Java的多线程机制 (4)对计算机网络(计算机之间的通信)有基本的认识(最起码知道啥是IP地址,用来干啥的) 二、URL类和InetAddress类 1、URL类 URL想必大

tomatoarmys的博客 394

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java网络编程(二)—— InetAddress类和NetworkInterface类

Java网络编程(二)—— InetAddress类和NetworkInterface类 Java网络编程(二)—— InetAddress类和NetworkInterface类InetAddress类使用方法可达性NetworkInterface类使用方法获取方法 InetAddress类 java.net.InetAddress类是Java对IP地址的高层表示。一般来说,它包括一个主机名和一个IP地址。 使用方法 InetAddress类没有公共构造函数,但是他有一些静态工厂方法来构造InetAddr

lizefeng1998的博客 915

Java程序设计 网络编程 IP地址与InetAddress类

Java程序设计 网络编程 IP地址与InetAddress类 IP地址 互联网上的每一台计算机都有一个唯一表示自己的标记,这个标记就是IP地址 IP地址使用32位长度二进制数据表示,一般在实际中看到的大部分IP地址都是以十进制的数据形式表示 IP地址格式 网络地址+主机地址 网络号:用于识别主机所在的网络 主机号:用于识别该网络中的主机 IP地址分为: A类保留给政府机构 B类分配给中等规模的公司 C类分配给任何需要的人 D类用于组播 E类用于实验 分类 范围 A类地址 1.0.0.1

小旺的博客 1040

java中网络编程的InetAddress类

java中网络编程的InetAddress类 了解了IP地址的作用,我们看学习下JDK中提供了一个InetAdderss类,该类用于封装一个IP地址,并提供了一系列与IP地址相关的方法,下表中列出了InetAddress类的一些常用方法。 java中网络编程的InetAddress类常用方法 package com.mytest.test0

反正我不管,就爱陈旭员 656

java网络编程(一):java.net.InetAddress类的使用

InetAddress类是Java包装用来表示IP地址的高级表示。几乎所有的Java网络相关的类都和它有关系,例如:serversocket,socket,URL,DataGramSocket,DataGRamPacket等。 InetAddress常用无非是获取ip和主机之间的关系的这些方法,下面直接写个main方法就可以了: import java.net.InetAddress; impo...

shenhaiyushitiaoyu的博客 5万+

java网络编程(2)InetAddress 类及udp协议

InetAddress 类 JDK中为开发网络应用程序提供了java.net包,该包下的类和接口几乎都是为网络编程服务的。 InetAddress:用于描述IP地址的对象 InetAddress类没有提供构造方法, 而是提供了静态方法来获取InetAddress实例 getByName(String host):根据主机获取对应的InetAddress对象。getByAddress(

柠檬不萌 2130

Java网络编程(一)(InetAddress类与Socket类)

1、什么是计算机网络 计算机网络是将不同地理位置的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 2、Java网络编程 Java语言对网络编程提供了良好的支持。通过其提供的接口我们可以很方便地进行网络编程。Java提供了两种常见的网络协议的支持: TCP:TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP。 UDP:UDP 是用户数据报协

hw159357_的博客 727

java网络编程四:InetAddress类、URL类、URLConnection类解析及用法示例

1、InetAddress类实现简单IP扫描获得主机名 [java] view plaincopy "font-size:16px;">package demo.net;      import java.net.InetAddress;   import java.net.UnknownHostException;      /*   * 

ccecwg的专栏 491

Java网络编程之URL类创建客户端程序、InetAddress类获取域名IP

大家好,我是柒星 今天讲解Java网络编程之URL类、InetAddress类,在讲之前呢,大家有必要了解什么是网络编程?(因为我一向推崇大家学习的时候先了解你要学的东西有哪些作用,是用来干什么的,这样你才有目的有意义的去学习。否则意义不大~) 以下文章来自公众号【Honker】,公众号内回复Java可免费领取Java学习视频~ 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络...

专注前端技术,包括Web端、移动端、小程序、APP 716

【Java-47】基于Java的网络编程InetAddress类与InetSocketAddress类

package My_internet; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.UnknownHostException; public class InteAdress { public static void main(String[] args) throws Un...

我的笔记 348
上一篇: QQ协议分析
EdgarHowe
博客等级 码龄19年 3粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值