java--网络编程-基础知识

java为网络支持提供了java.net包,该包下的URL和URLConnection等类提供了以编程方式访问Web服务的功能,而URLDecoder和URLEncoder则提供了普通字符串和appliction/x-www-form-urlencoded MIME 字符串相互转换的静态方法。

使用InetAddress类(实现的接口是Serializable序列化接口):

java提供了InetAddress类代表IP地址,InetAddress下还有两个子类:Inet4Address、Inet6Address,他们分别代表IPv4和IPv6地址。

InetAddress没有提供构造器,而是提供了如下两个静态方法来获取InetAddress实例。

1、getByName(String host):根据主机获取对应的InetAddress对象。

2、getByAddress(byte[] addr):根据原始IP地址来获取对应的InetAddress对象。

 

static InetAddress[] getAllByName(String host) 
          在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。
static InetAddress getByAddress(byte[] addr) 
          在给定原始 IP 地址的情况下,返回 InetAddress 对象。
static InetAddress getByAddress(String host, byte[] addr) 
          根据提供的主机名和 IP 地址创建 InetAddress。
static InetAddress getByName(String host) 
          在给定主机名的情况下确定主机的 IP 地址。

 

InetAddress还提供了如下三个方法来获取InetAddress实例对应的IP地址和主机名。

1、String getCanonicalHostName():获取此IP地址的全限定域名。

2、String getHostAddress():返回该InetAddress实例对应的IP地址字符串(以字符串形式).

3、String getHostName():获取此IP地址的主机名。

除此之外,InetAddress类还提供了一个getLocalHost()方法来获取本机IP地址对应的InetAddress实例。

InetAddress类还提供了一个isReachable()方法,用于测试是否可以到达该地址,该方法将尽最大努力试图到达主机。

 

 1 import java.net.InetAddress;
 2 public class InetAddressClass
 3 {
 4     public static void main(String[] arg) throws Exception{
 5         //根据主机名来获取对应的InetAddress实例
 6         InetAddress ip=InetAddress.getByName("www.baidu.com");
 7         //判断是否可到达
 8         System.out.println("baidu是否可达到:"+ip.isReachable(2000));
 9         //获得该InetAddress实例的IP字符串
10         System.out.println(ip.getHostAddress());
11         //根据原始IP地址来获取对应的InetAddress实例
12         InetAddress local=InetAddress.getByAddress(new byte[]{127,0,0,1});
13         //判断主机是否可到达
14         System.out.println("本机主机是否可以到达:"+local.isReachable(2000));
15         //获取该InetAddress实例对用的全限定域名
16         System.out.println(local.getCanonicalHostName());
17     }
18 }

 

posted @ 2015-04-29 11:06  IT男汉  阅读(287)  评论(0编辑  收藏  举报