1.引言 Java 为了跨平台,在网络应用通信时是不允许直接调用操作系统接口的,而是由 java.net 包来提供网络功能。下面我们来介绍几个 java.net 包中的常用的类。 2.InetAddress 的使用 作用
1.引言
Java 为了跨平台,在网络应用通信时是不允许直接调用操作系统接口的,而是由 java.net 包来提供网络功能。下面我们来介绍几个 java.net 包中的常用的类。
2.InetAddress 的使用
作用:封装计算机的 IP 地址和域名。 特点:这个类没有构造方法。如果要得到对象,只能通过 getLocalHost()、getByName()等静态方法创建对象。
获取本机信息需要使用 getLocalHost 方法创建 InetAddress 对象。getLocalHost() 方法返回一个 InetAddress 对象,这个对象包含了本机的 IP 地址,计算机名等信息。
public void method_01() throws Exception {
//实例化InetAddress对象
InetAddress inetAddress = InetAddress.getLocalHost();
//返回当前计算机的IP地址
System.out.println(inetAddress.getHostAddress());
//返回当前计算机名
System.out.println(inetAddress.getHostName());
}
根据域名获取计算机信息时需要使用 getByName(“域名”)方法创建 InetAddress 对 象。
public void method_02() throws Exception {
InetAddress inetAddress = InetAddress.getByName("www.baidu.com");
//返回当前计算机的IP地址
System.out.println(inetAddress.getHostAddress());
//返回当前计算机名
System.out.println(inetAddress.getHostName());
}
根据 IP 地址获取计算机信息时需要使用 getByName(“IP”)方法创建 InetAddress对象。
public void method_03() throws Exception {
InetAddress inetAddress = InetAddress.getByName("36.152.44.96");
//返回当前计算机的IP地址
System.out.println(inetAddress.getHostAddress());
//返回当前计算机名,
System.out.println(inetAddress.getHostName());
}
3.InetSocketAddress 的使用
作用:包含 IP 和端口信息,常用于 Socket 通信。此类实现 IP 套接字地址(IP 地址 + 端口号),不依赖任何协议。 InetSocketAddress 相比较 InetAddress 多了一个端口号,端口的作用:一台拥有 IP 地址 的主机可以提供许多服务,比如 Web 服务、FTP 服务、SMTP 服务等,这些服务完全可以通 过 1 个 IP 地址来实现。 那么,主机是怎样区分不同的网络服务呢?显然不能只靠 IP 地址,因为 IP 地址与网络 服务的关系是一对多的关系。实际上是通过“IP 地址+端口号”来区分不同的服务的
InetSocketAddress inetSocketAddress = new InetSocketAddress("www.baidu.com",80);//返回当前计算机的IP地址
System.out.println(inetSocketAddress.getAddress().getHostAddress());
//返回当前计算机名,
System.out.println(inetSocketAddress.getHostName());