仓酷云

标题: 了解下JAVA的Java收集编程基本(一) InetAddress类的利用 [打印本页]

作者: 深爱那片海    时间: 2015-1-18 11:26
标题: 了解下JAVA的Java收集编程基本(一) InetAddress类的利用
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。
InetAddress类在收集API套接字编程中饰演了一个主要脚色。
参数传送给流套接字类和自寻址套接字类机关器或非机关器办法。InetAddress形貌了32位或64位IP地点,要完成这个功效,InetAddress类次要依托两个撑持类Inet4Address和Inet6Address,这三个类是承继干系,InetAddrress是父类,Inet4Address和Inet6Address是子类。
因为InetAddress类只要一个机关函数,并且不克不及传送参数,以是不克不及间接创立InetAddress对象,好比上面的做法就是毛病的:
InetAddressia=newInetAddress();
但我们能够经由过程上面的5个工场办法创立来创立一个InetAddress对象或InetAddress数组:
.getAllByName(Stringhost)办法前往一个InetAddress对象的援用,每一个对象包括一个暗示响应主机名的独自的IP地点,这个IP地点是经由过程host参数传送的,关于指定的主机假如没有IP地点存在那末这个办法将抛出一个UnknownHostException非常对象。
.getByAddress(byte[]addr)办法前往一个InetAddress对象的援用,这个对象包括了一个Ipv4地点或Ipv6地点,Ipv4地点是一个4字节数组,Ipv6地点是一个16字节地点数组,假如前往的数组既不是4字节的也不是16字节的,那末办法将会抛出一个UnknownHostException非常对象。
.getByAddress(Stringhost,byte[]addr)办法前往一个InetAddress对象的援用,这个InetAddress对象包括了一个由host和4字节的addr数组指定的IP地点,大概是host和16字节的addr数组指定的IP地点,假如这个数组既不是4字节的也不是16位字节的,那末该办法将抛出一个UnknownHostException非常对象。
.getByName(Stringhost)办法前往一个InetAddress对象,该对象包括了一个与host参数指定的主机绝对应的IP地点,关于指定的主机假如没有IP地点存在,那末办法将抛出一个UnknownHostException非常对象。
.getLocalHost()办法前往一个InetAddress对象,这个对象包括了当地机的IP地点,思索到当地主机既是客户程序主机又是服务器程序主机,为制止凌乱,我们将客户程序主机称为客户主机,将服务器程序主机称为服务器主机。
下面讲到的办法均提到前往一个或多个InetAddress对象的援用,实践上每个办法都要前往一个或多个Inet4Address/Inet6Address对象的援用,挪用者不必要晓得援用的子范例,相反挪用者可使用前往的援用挪用InetAddress对象的非静态办法,包含子范例的多态以确珍重载办法被挪用。
InetAddress和它的子范例对象处置主机名到主机IPv4或IPv6地点的转换,要完成这个转换必要利用域名体系,上面的代码树模了怎样经由过程挪用getByName(Stringhost)办法取得InetAddress子类对象的办法,这个对象包括了与host参数绝对应的IP地点:
InetAddressia=InetAddress.getByName("www.javajeff.com"));
一但取得了InetAddress子类对象的援用就能够挪用InetAddress的各类办法来取得InetAddress子类对象中的IP地点信息,好比,能够经由过程挪用getCanonicalHostName()从域名服务中取得尺度的主机名;getHostAddress()取得IP地点,getHostName()取得主机名,isLoopbackAddress()判别IP地点是不是是一个loopback地点。
List1是一段树模代码:
//InetAddressDemo.java
importjava.net.*;
classInetAddressDemo
{
 publicstaticvoidmain(String[]args)throwsUnknownHostException
 {
  Stringhost="localhost";
  if(args.length==1)
   host=args[0];
  InetAddressia=InetAddress.getByName(host);
  System.out.println("CanonicalHostName="+
        ia.getCanonicalHostName());
  System.out.println("HostAddress="+
        ia.getHostAddress());
  System.out.println("HostName="+
        ia.getHostName());
  System.out.println("IsLoopbackAddress="+
        ia.isLoopbackAddress());
 }
}
当无命令行参数时,代码输入相似上面的了局:
CanonicalHostName=localhost
HostAddress=127.0.0.1
HostName=localhost
IsLoopbackAddress=true
InetAddressDemo给了你一个指定主机名作为命令行参数的选择,假如没有主机名被指定,那末将利用localhost(客户机的),InetAddressDemo经由过程挪用getByName(Stringhost)办法取得一个InetAddress子类对象的援用,经由过程这个援用取得了尺度主机名,主机地点,主机名和IP地点是不是是loopback地点的输入。

由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,
作者: 柔情似水    时间: 2015-1-21 06:21
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 老尸    时间: 2015-1-25 22:48
Java是一种计算机编程语言,拥有跨平台、面向对java
作者: 金色的骷髅    时间: 2015-1-28 10:44
Java 编程语言的风格十分接近C、C++语言。
作者: 飘灵儿    时间: 2015-2-4 20:33
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者: 第二个灵魂    时间: 2015-2-6 10:06
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者: 只想知道    时间: 2015-2-6 14:39
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 山那边是海    时间: 2015-2-16 15:45
是一种突破用户端机器环境和CPU
作者: 若相依    时间: 2015-2-22 20:15
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者: 深爱那片海    时间: 2015-2-24 10:38
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者: 小魔女    时间: 2015-3-2 23:42
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
作者: 分手快乐    时间: 2015-3-6 00:01
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
作者: 仓酷云    时间: 2015-3-6 19:06
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
作者: 精灵巫婆    时间: 2015-3-12 23:36
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者: 简单生活    时间: 2015-3-20 05:27
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
作者: 兰色精灵    时间: 2015-4-9 13:22
Java是一种计算机编程语言,拥有跨平台、面向对java




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2