当前位置: 首页 > article >正文

Java重修笔记 InetAddress 类和 Socket 类

  • 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. 主动发起通信的应用程序被称为客户端,等待通信请求的为服务端


http://www.kler.cn/news/353830.html

相关文章:

  • 数据结构——排序(归并排序)
  • 给定任意非空有向图 G,输出 G 中所有 K 顶点的算法,并返回 K 顶点的个数。
  • 通过API进行Milvus实例配置
  • Android摄像头Camera2和Camera1的一些总结
  • 百万字文本内容搜索Java实现方案
  • springboot项目多个数据源配置 dblink
  • 牛客编程初学者入门训练——BC19 牛牛的对齐
  • git clone --single-branch 提升效率
  • electron-vite_8修改版本号和出品公司名称
  • 【Golang】Go语言中的反射原理解析与应用实战
  • ssm资产管理信息系统+vue
  • 组合式API有什么好处
  • 【React】父组件如何调用子组件的方法
  • netron安装(windows linux)
  • 通过阿里云Milvus和通义千问快速构建基于专属知识库的问答系统
  • ProteinMPNN中蛋白质特征提取
  • python的多线程和多进程
  • 【vue+printJs】前端打印, 自定义字体大小, 自定义样式, 封装共享样式
  • 【Flutter】Dart:函数
  • esp32 开发需要那些开发语言