欢迎光临
我们一直在努力

Java Network Programming 笔记(2)-JSP教程,Java技巧及代码

建站超值云服务器,限时71元/月

 

java network programming 笔记

n5

二 查找internet地址
chapter 6 looking up internet addresses

java.net.inetaddress类是java对ip地址的封装,这个类被其他大多数网络类使用,包括socket,serversocket,url,datagramsocket,datagrampacket。
该类中包含hostname和address,但不是public的。

1 获得inetaddress对象
inetaddress类没有公有构造器,通过三个static方法可得到inetaddress对象:
public static inetaddress inetaddress.getbyname(string hostname) throws unknownhostexception
public static inetaddress[] inetaddress.getallbyname(string hostname) throws unknownhostexception
public static inetaddress inetaddress.getlocalhost() throws unknownhostexception
这三个方法会进行网络连接去得到它们需要的所有信息。类中的其他方法如getaddress()和gethostname()使用这3个方法提供的信息而不进行网络连接,不过非常小的情况它们也会连接网络但不抛出任何异常。

参数hostname可以是网址如www.xxx.com也可以是字符串形式的点分ip地址如10.2.3.4
java1.1以后,如果用ip地址做参数,将根据这个ip地址创建一个inetadress对象,而不使用dns检查。这就可能创建一个主机并不存在的inetaddress对象。使用这种方法创建的inetaddress对象,主机名(hostname)被初始化为点分ip地址。只有当hostname被请求时(显示的如调用getaddress(),隐式的如调用tostring()),dns才会检查实际的主机名,如果dns检查发现指定的ip地址找不到,则hostname保留为原来的点分ip地址,而不会抛出unknownhostexception
hostname比ip地址稳定,对于一个主机hostname往往不变而ip地址可能变化,所以最好使用hostname做参数,而只有当主机没有hostname时才使用点分ip地址。

有些主机有不止一个ip地址,使用getallbyname()可以以数组的形式得到某主机名对应的所有ip地址。

getlocalhost()获得本机的inetaddress对象

2 获得信息
public string gethostname()
可以得到hostname,特别是用点分ip地址作为参数得到inetaddress对象时可用gethostname得到hostname.

public string gethostaddress()
得到点分ip地址字符串,可用这个方法打印出ip地址

public byte[] getaddress()
得到ip地址,存储在byte数组中,比如ipv4格式的ip地址10.2.3.4会得到长度为4的数组ip,则ip[0]=10,ip[1]=2,ip[2]=3,ip[3]=4;若是ipv6,则数组长度就不是4了
注意,返回的byte应该是无符号的,0~255,但java的byte是以带符号的。大于127的byte被看作负数。因此,应该用int(或short等)存放ip地址的每一个数字,并做相应的调整
int unsignedbyte = signedbyte < 0 ? singedbyte + 256 : singedbyte ;

3
public boolean equals(object o)
一个object对象equals to一个inetaddress对象的条件是该object是inetaddress类的一个实例并且它们具有相同的ip地址。equals不需要hostname相同。

4 例程 hostlookup.java

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Java Network Programming 笔记(2)-JSP教程,Java技巧及代码
分享到: 更多 (0)

相关推荐

  • 暂无文章