# TestEcho-SSL-Console 快速使用指南 ## 编译步骤 ### 方法1:使用Visual Studio 2022 1. 使用VS2022打开解决方案文件: ``` e:\开发\C_C++\hp-socket-6.0.4\hp-socket-6.0.7-src\Windows\Demo\TestEcho-SSL-Console\TestEcho-SSL-Console.sln ``` 2. 选择配置: - 配置:Debug 或 Release - 平台:x64(推荐)或 x86 3. 点击菜单:**生成 -> 生成解决方案** (或按 Ctrl+Shift+B) 4. 编译完成后,可执行文件位于: - Debug x64: `e:\开发\C_C++\hp-socket-6.0.4\hp-socket-6.0.7-src\Windows\Demo\Debug\x64\` - Release x64: `e:\开发\C_C++\hp-socket-6.0.4\hp-socket-6.0.7-src\Windows\Demo\Release\x64\` ### 方法2:使用命令行编译(需要配置VS环境) 打开 **x64 Native Tools Command Prompt for VS 2022**: ```cmd cd /d "e:\开发\C_C++\hp-socket-6.0.4\hp-socket-6.0.7-src\Windows\Demo\TestEcho-SSL-Console" msbuild TestEcho-SSL-Console.sln /p:Configuration=Release /p:Platform=x64 ``` ## 运行步骤 ### 第一步:启动服务器 打开命令提示符窗口: ```cmd cd /d "e:\开发\C_C++\hp-socket-6.0.4\hp-socket-6.0.7-src\Windows\Demo\Debug\x64" TestEcho-SSL-Console-Server.exe ``` 你将看到: ``` ======================================== HP-Socket SSL Server 控制台演示程序 ======================================== [服务器] 正在初始化SSL环境... [服务器] SSL环境初始化成功 [服务器] 正在启动服务器... [服务器] 准备监听: 0.0.0.0:5555 [服务器] 服务器启动成功,监听端口: 5555 [服务器] 按 'Q' 键停止服务器... ``` ### 第二步:启动客户端 打开**另一个**命令提示符窗口: ```cmd cd /d "e:\开发\C_C++\hp-socket-6.0.4\hp-socket-6.0.7-src\Windows\Demo\Debug\x64" TestEcho-SSL-Console-Client.exe ``` 你将看到: ``` ======================================== HP-Socket SSL Client 控制台演示程序 ======================================== [客户端] 正在初始化SSL环境... [客户端] SSL环境初始化成功 [客户端] 正在连接服务器 127.0.0.1:5555 ... [客户端] 连接成功: 本地地址=127.0.0.1:xxxxx [客户端] SSL握手完成 [客户端] 已连接到服务器,可以开始发送消息 ---------------------------------------- 命令菜单: 1 - 发送 'hello' 到服务器 Q - 断开连接并退出 ---------------------------------------- 请输入命令: ``` ### 第三步:测试通信 在客户端窗口中: 1. **按键盘上的 `1`** 发送消息到服务器 客户端显示: ``` 1 [客户端] 发送消息: "hello" [客户端] 收到服务器响应: "hello!" ``` 服务器显示: ``` [服务器] 客户端连接: ID=1, 地址=127.0.0.1:xxxxx [服务器] SSL握手完成: ID=1 [服务器] 接收到消息: ID=1, 内容="hello from client" [服务器] 发送响应: "hello!" ``` 2. **按 `Q` 键退出客户端** 3. 在服务器窗口中**按 `Q` 键停止服务器** ## 测试场景 ### 场景1:基本的消息收发 1. 启动服务器 2. 启动客户端 3. 在客户端按 `1` 发送消息 4. 观察服务器收到 "hello from client" 并返回 "hello!" 5. 观察客户端收到服务器的 "hello!" 响应 ### 场景2:多次发送 1. 启动服务器和客户端 2. 在客户端多次按 `1` 键 3. 每次都会发送消息并收到响应 ### 场景3:客户端重连 1. 启动服务器 2. 启动客户端并发送消息 3. 关闭客户端(按 Q) 4. 再次启动客户端 5. 继续发送消息 ## 常见问题 ### Q1: 编译时找不到OpenSSL库 **问题**:编译错误提示找不到 `libssl.lib` 或 `libcrypto.lib` **解决方案**: 1. 检查路径 `e:\开发\C_C++\hp-socket-6.0.4\hp-socket-6.0.7-src\Windows\Dependent\openssl\v143\x64\lib\` 是否存在 2. 如果不存在 `v143` 目录,可能需要调整项目文件中的OpenSSL路径 3. 检查是否有其他版本的工具集目录(如 v142, v141等) ### Q2: 运行时找不到DLL **问题**:运行时提示找不到 `libssl-3-x64.dll` 或 `libcrypto-3-x64.dll` **解决方案**: 1. 将DLL文件从 `Windows\Dependent\openssl\v143\x64\bin\` 复制到程序所在目录 2. 或将该bin目录添加到系统PATH环境变量 ### Q3: 服务器启动失败,端口被占用 **问题**:服务器启动失败,提示端口5555已被占用 **解决方案**: ```cmd # 查看端口占用情况 netstat -ano | findstr 5555 # 如果需要,结束占用端口的进程 taskkill /F /PID <进程ID> ``` ### Q4: 客户端无法连接服务器 **问题**:客户端连接超时 **解决方案**: 1. 确认服务器已经启动 2. 检查防火墙是否阻止了连接 3. 确认服务器监听的是 0.0.0.0:5555 4. 如果是远程连接,修改客户端代码中的 `DEFAULT_ADDRESS` ## 代码自定义 ### 修改监听端口 编辑 `Server/main.cpp`: ```cpp static const USHORT PORT = 5555; // 修改为你想要的端口 ``` 编辑 `Client/main.cpp`: ```cpp static const USHORT DEFAULT_PORT = 5555; // 修改为与服务器相同的端口 ``` ### 修改服务器地址 编辑 `Client/main.cpp`: ```cpp static const LPCTSTR DEFAULT_ADDRESS = _T("127.0.0.1"); // 修改为服务器IP ``` ### 自定义消息内容 编辑 `Client/main.cpp`,在 `if (ch == '1')` 代码块中: ```cpp std::string message = "hello"; // 修改发送的内容 ``` 编辑 `Server/main.cpp`,在 `OnReceive` 方法中: ```cpp std::string response = "hello!"; // 修改响应的内容 ``` ## 技术支持 如有问题,请参考: - HP-Socket官方文档 - README.md 完整说明 - Windows\Demo\TestEcho-SSL\ 原始示例项目 祝使用愉快!