1. 创建模块(module):ExamSystemClient,用于存放客户端的代码
2. 创建ClientInitClose.java, 用于客户端的初始化、关闭
代码:
1 package com.lagou.client; 2 import java.io.IOException; 3 import java.io.ObjectInputStream; 4 import java.io.ObjectOutputStream; 5 import java.net.InetAddress; 6 import java.net.Socket; 7 8 // 实现客户端的初始化和关闭操作 9 public class ClientInitClose { 10 11 private Socket s; 12 private ObjectOutputStream oos; 13 private ObjectInputStream ois; 14 15 // 定义clientInit()方法, 实现客户端的初始化 16 public void clientInit() throws IOException{ 17 18 // 1. 创建Socket类型的对象, 并指定服务器的通信地址 & 端口号 19 s = new Socket(InetAddress.getLocalHost(), 8888); 20 21 // 2. 使用输入输出流通信 22 oos = new ObjectOutputStream(s.getOutputStream()); 23 ois = new ObjectInputStream(s.getInputStream()); 24 System.out.println("客户端已完成初始化 (成功连接服务器)!"); 25 } 26 27 // 定义clientClose()方法, 实现客户端的关闭 28 public void clientClose() throws IOException{ 29 30 // 3. 关闭Socket,并释放有关资源 31 ois.close(); 32 oos.close(); 33 s.close(); 34 System.out.println("客户端成功关闭!"); 35 } 36 }
2. 创建ClientTest.java, 用于测试客户端的初始化和关闭功能
代码:
1 package com.lagou.client; 2 3 import java.io.IOException; 4 5 public class ClientTest { 6 7 public static void main(String[] args) { 8 9 ClientInitClose cic = null; 10 11 try { 12 // 1. 声明ClientInitClose类型的引用,指向该类型的对象 13 cic = new ClientInitClose(); 14 // 2. 调用成员方法, 实现客户端的初始化操作 15 cic.clientInit(); 16 } catch (IOException e) { 17 e.printStackTrace(); 18 } finally { 19 // 3. 调用成员方法, 实现客户端的关闭操作 20 try { 21 cic.clientClose(); 22 } catch (IOException e) { 23 e.printStackTrace(); 24 } 25 } 26 } 27 }
运行效果:
与此同时: