Java简单模拟聊天
某公司想组建本公司的客服聊天系统,用于客户与客服人员的点对点的对话,当客户连接到客服服务器时, 客户(客户端)就可以向客服人员(服务器端)进行咨询
题目分析:
- 用户端和客服端之间需要进行对话
- 需要实现一次发送多条消息,同时也可以接受多条消息
拆解:
- 用户端和客服端
- 服务端的线程
- send线程:用于发送消息
- receive线程:用于接受消息
- CloseUtil:线程在使用之后需要进行关闭,而本题涉及到多出需要关闭的资源,因此编写CloseUtil类,实现资源的关闭
CLient(用户端)
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("127.0.0.1",7080);
//127.0.0.1 为指定本机,7080为端口号
new SendThread(socket).start();
new ReceiveThread("客服",socket).start();
}
}
CustomerService(客服端)
public class CustomerService {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(7080);
int i=1;
Socket client = serverSocket.accept();
System.out.println("有用户端连接");
ServerThread ser