文章目录
- I Socket API 简介
- II ServerSocket API 简介
- III Socket 数据交互
- IV Socket 客户端操作流程
- V Socket 服务器端操作流程
- VI Socket 与 进程
I Socket API 简介
1. Socket 是客户端套接字的类 ;
2. Socket 构造方法 : 调用 Socket() , 创建 Socket 套接字对象 ; 创建之后 , 设置都是默认值 , 可以调用各种设置方法设置 Socket 对象的参数 ;
3. 端口绑定 : bind() , 将某个本地 IP 地址和端口号绑定到 Socket 对象上 ;
4. 连接服务器 : connect() , 连接服务器端 ;
II ServerSocket API 简介
1. ServerSocket 是服务器端套接字类 ;
2. 接受客户端连接 : 调用 accept() , 接受客户端的连接 , 该连接时新的连接 ;
- ① 阻塞状态 : 该方法调用之后 , 会将当前线程阻塞 , 直到客户端的连接到达; 因此需要单独开启一条线程用来建立与客户端的连接 ;
- ② 等待连接阻塞时间设置 : 默认的等待阻塞的时间是无限长的 ;
- ③ 自动创建 Socket 对象 : 客户端连接到达后 , 服务器端会自动创建一个 Socket 对象 , 用于与客户端进行数据交互操作 ;
III Socket 数据交互
1. 写出数据 : 先获取 Socket 输出流 , 调用 write() 相关方法 , 将数据写出到 Socket 输出流中 ;
2. 读取数据 : 先获取 Socket 输入流 , 调用 read() 相关方法 , 将数据读取到 Socket 输入流中 ;
IV Socket 客户端操作流程
1. 客户端创建 Socket : 调用 Socket() 构造方法创建套接字, 此时创建的是空的套接字 ;
2. 绑定本地套接字 : 调用 Socket 对象的 bind() 方法将本地的 IP 地址和端口号绑定到上面创建的套接字上 ;
3. 连接远程客户端 : 调用 Socket 对象的 connect() 方法连接服务器端 , 连接失败直接抛出异常 , 连接成功就可以进行从 Socket 对象中获取输入输出流 , 与服务器端进行数据交互了 ;
V Socket 服务器端操作流程
1. 创建服务器套接字 : 调用 ServerSocket() 构造方法 , 创建 ServerSocket 对象 ;
2. 绑定 : ServerSocket 对象也需要绑定本地的 IP 地址和端口号 ;
3. 等待连接 : 调用 accept() 方法等待客户端连接到达 , 此时会阻塞线程 , 等待连接 ; 如果客户端连接到达 , 就可以与自动创建的 Socket 对象进行数据交互 ;
VI Socket 与 进程
1. 前提 : 应用的每个进程都可以创建一个或多个 Socket 连接 ;
2. 进程间通信 : 不同的进程绑定不同的端口号 , 可以通过 Socket 连接进行进程间通信 ;