Java重修笔记 InetAddress 类和 Socket 类

发布于:2024-10-17 ⋅ 阅读:(9) ⋅ 点赞:(0)
  • InetAddress 类相关方法
1. 获取本机 InetAddress 对象:getLocalHost

        public static InetAddress getLocalHost() throws UnknownHostException

        返回值:本地主机的名字和地址

        异常:UnknownHostException - 如果本地主机名无法解析成地址

2. 根据指定主机名/域名来获取 IP 地址对象:getByName

        public static InetAddress getByName(String host) throws UnknownHostException

        返回值:给定主机名的IP地址

        异常:UnknownHostException - 如果没有找到 host IP地址,或者是否为全局IPv6地址指定了scope_id。
                   SecurityException - 如果安全管理器存在,并且其 checkConnect 方法不允许该操作

3. 根据 InetAddress 对象获取主机名:getHostName

        public String getHostName()

4. 根据 InetAddress 对象获取地址:getHostAddress

        public String getHostAddress()

public class API_ {
    public static void main(String[] args) throws UnknownHostException {
        // 获取本机的 InetAddress 对象
        InetAddress localHost = InetAddress.getLocalHost();
        System.out.println("localHost = " + localHost); // DESKTOP-L4UPSF9/192.168.1.4

        // 根据指定主机名/域名来获取 IP 地址对象:getByName
        InetAddress host1 = InetAddress.getByName("DESKTOP-L4UPSF9");
        System.out.println("host1 = " + host1); // DESKTOP-L4UPSF9/192.168.1.4
        InetAddress host2 = InetAddress.getByName("www.baidu.com");
        System.out.println("host2 = " + host2); // www.baidu.com/110.242.68.4

        // 根据 InetAddress 对象获取主机名 getHostName
        String hostName = host2.getHostName();
        System.out.println(hostName); // www.baidu.com

        // 根据 InetAddress 对象获取域名 getHostAddress
        String hostAddress = host2.getHostAddress();
        System.out.println(hostAddress); // 110.242.68.3
    }
}

  • Socket 类

1. Socket 被称为套接字,在开发网络应用程序时被广泛采用,以至于成为事实上的标准

2. 通信的两端都要有 Socket,是两台机器间通信的端点

3. 网络通信其实就是 Socket 之间的通信

4. Socket 允许程序把网络连接当成一个流,让数据在两个 Socket 之间通过 IO 流来传输

5. 主动发起通信的应用程序被称为客户端,等待通信请求的为服务端