# easychat-java **Repository Path**: su27sk/easychat-java ## Basic Information - **Project Name**: easychat-java - **Description**: 仿微信IM即时通讯项目 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-28 - **Last Updated**: 2026-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 仿微信IM通信项目 技术栈:JDK1.8,SpringBoot,MySQl,Redis,Netty,WebSocker ## 聊天室Demo Server端 ```java public class SocketServer { public static void main(String[] args) { ServerSocket server = null; Map CLIENT_MAP = new HashMap<>(); try { server = new ServerSocket(1024); System.out.println("服务已启动,等待客户端连接"); while (true) { Socket socket = server.accept(); String ip = socket.getInetAddress().getHostAddress(); System.out.println("有客户端连接 -> ip:" + ip + ",端口:" + socket.getPort()); String clientKey = ip + " " + socket.getPort(); CLIENT_MAP.put(clientKey, socket); new Thread(() -> { while (true) { try { InputStream inputStream = socket.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String readData = bufferedReader.readLine(); // 阻塞方法 System.out.println("收到客户端消息:-> " + readData); CLIENT_MAP.forEach((k, v) -> { System.out.println(k); try { OutputStream outputStream = v.getOutputStream(); PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(outputStream, "UTF-8")); printWriter.println(socket.getPort() + ":" + readData); printWriter.flush(); }catch (Exception e) { e.printStackTrace(); } }); } catch (Exception e) { e.printStackTrace(); break; } } }).start(); } } catch (Exception e) { e.printStackTrace(); } } } ``` Client端 ```java public class SocketClient { public static void main(String[] args) { Socket socket = null; try { socket = new Socket("127.0.0.1", 1024); OutputStream outputStream = socket.getOutputStream(); PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(outputStream, "UTF-8")); System.out.println("请输入内容:"); new Thread(()-> { while (true) { Scanner scanner = new Scanner(System.in); String input = scanner.nextLine(); try { printWriter.println(input); printWriter.flush(); }catch (Exception e) { e.printStackTrace(); break; } } }).start(); InputStream inputStream = socket.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream,"UTF-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); new Thread(()->{ while (true) { try { String readData = bufferedReader.readLine(); System.out.println("收到服务端的消息:->" + readData); }catch (Exception e) { e.printStackTrace(); break; } } }).start(); } catch (Exception e) { e.printStackTrace(); } } } ```