InetAddress

InetAddress对域名进行解析是使用本地机器配置或者网络命名服务(如域名系统(Domain Name System,DNS)和网络信息服务(Network Information Service,NIS))来实现。对于DNS来说,本地需要向DNS服务器发送查询的请求,然后服务器根据一系列的操作,返回对应的IP地址,为了提高效率,通常本地会缓存一些主机名与IP地址的映射,这样访问相同的地址,就不需要重复发送DNS请求了。在java.net.InetAddress类同样采用了这种策略。在默认情况下,会缓存一段有限时间的映射,对于主机名解析不成功的结果,会缓存非常短的时间(10秒)来提高性能。

InetAddress类的使用:

InetAddress类用来封装数字式的IP地址和该地址的域名。通过一个IP主机名与这个类发生作用,IP主机名比它的IP地址用起来更简便更容易理解。

getLocalHost( )仅返回象征本地主机的InetAddress 对象。getByName( )方法返回一个传给它的主机名的InetAddress。如果这些方法不能解析主机名,它们引发一个UnknownHostException异常。

在Internet上,用一个名称来代表多个机器是常有的事。getAllByName( )工厂方法返回代表由一个特殊名称分解的所有地址的InetAddresses类数组。在不能把名称分解成至少一个地址时,它将引发一个Unknown HostException异常。

实例:

 package network;

 import java.net.InetAddress;
import java.net.UnknownHostException; public class InetAddress1 {
public static void main(String[] args) throws Exception {
InetAddress address=InetAddress.getLocalHost(); System.out.println(address); System.out.println("-----------------------------"); System.out.println(InetAddress.getByName("www.sohu.com"));
}
}
上一篇:Android 实用开源控件


下一篇:小谈一下Java I/O