# echo-server **Repository Path**: gao-wenxiu-21/echo-server ## Basic Information - **Project Name**: echo-server - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 41 - **Created**: 2025-12-04 - **Last Updated**: 2025-12-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Echo Server 一个简单的TCP回声服务器,实现客户端与服务器之间的消息回传功能。 ## 项目简介 本项目包含一个基础的TCP回声服务器和相应的客户端,服务器将客户端发送的每条消息原样返回给客户端,直到客户端发送"bye"断开连接。 提供了两个版本的服务器实现: 1. 基于传统线程池的版本 (EchoServer.java) 2. 基于NIO的高性能版本 (EchoServerNIO.java) ## 技术栈 - Java 17 - Maven - TCP Socket编程 - 线程池 (传统版本) - NIO (NIO版本) ## 功能特性 - 单客户端连接处理 - 消息回声功能 - 支持断开连接命令("bye") - 支持获取服务器时间命令("TIME") - 基础错误处理 - 多客户端并发支持 - 连接和断开日志记录 ## 项目结构 ``` src/ ├── main/ │ └── java/ │ └── com/example/echo/ │ ├── EchoServer.java # 传统线程池版本服务器 │ ├── EchoServerNIO.java # NIO版本服务器 │ └── EchoClient.java # 客户端测试实现 ``` ## 使用方法 ### 1. 编译项目 ```bash mvn clean compile ``` ### 2. 运行服务器 运行传统线程池版本: ```bash mvn exec:java -Dexec.mainClass="com.example.echo.EchoServer" ``` 或直接运行: ```bash java -cp target/classes com.example.echo.EchoServer ``` 运行NIO版本: ```bash mvn exec:java -Dexec.mainClass="com.example.echo.EchoServerNIO" ``` 或直接运行: ```bash java -cp target/classes com.example.echo.EchoServerNIO ``` ### 3. 运行客户端 另开一个终端,运行: ```bash mvn exec:java -Dexec.mainClass="com.example.echo.EchoClient" ``` 或直接运行: ```bash java -cp target/classes com.example.echo.EchoClient ``` ## 依赖 - slf4j-simple (日志记录) ## 端口配置 - 默认服务器端口: 8888 - 客户端默认连接地址: localhost:8888 ## 测试 输入任意消息到客户端,服务器将回传相同的消息加上"Echo: "前缀。输入"bye"可断开连接。 输入"TIME"可获取服务器当前时间。