# 五子棋网络对战使用说明 ## 功能概述 本项目支持网络对战功能,允许两台设备通过网络进行实时五子棋对战,支持服务器/客户端连接。 ## 编译方法 ```bash gcc -std=c17 -o gobang.exe *.c -lws2_32 ``` **注意:** - Windows系统需要添加 `-lws2_32` 链接库 - Linux系统不需要此链接库参数 ## 使用方法 ### 1. 启动游戏 运行编译后的程序 ```bash .\gobang.exe ``` ### 2. 选择网络对战模式 在主菜单中选择 `3. 网络对战` ### 3. 选择连接模式 #### 模式1:创建房间(作为服务器) - 选择 `1. 创建房间(作为服务器)` - 输入监听端口(默认8888,建议使用1024-65535范围内的端口) - 程序会显示本机IP地址,将此IP告知对方 - 等待对方连接 #### 模式2:加入房间(连接到服务器) - 选择 `2. 加入房间(连接到服务器)` - 输入服务器IP地址 - 输入服务器的端口号(与服务器设置的端口一致) - 连接到服务器 ### 4. 开始游戏 - 连接成功后游戏自动开始 - 服务器为玩家1(黑棋),客户端为玩家2(白棋) - 玩家1先手 ## 游戏操作 ### 基本操作 - **落子**:输入坐标 `行号 列号`,例如:`7 7` - **认输**:输入 `S` 或 `s` - **悔棋**:输入 `R` 或 `r`(需要对方同意) ### 网络功能 - **自动同步**:落子操作会自动同步给对方 - **连接检测**:自动检测网络连接状态 - **延时显示**:支持回合延时显示,避免过快操作 - **悔棋协商**:悔棋需要对方同意才能生效 ## 网络配置 ### 端口设置 - 默认端口:8888 - 可设端口范围:1024-65535 - 确保防火墙允许选定端口的通信 ### IP地址 - **局域网**:使用内网IP地址,例如:192.168.1.100 - **广域网**:使用公网IP地址,可能需要路由器端口转发 ### 防火墙设置 如果连接失败,请检查防火墙设置: #### Windows防火墙 1. 打开Windows安全中心 2. 选择"防火墙和网络保护" 3. 选择"允许应用通过防火墙" 4. 添加gobang.exe到允许列表 #### 路由器设置(用于广域网对战) 如果通过互联网对战,可能需要: 1. 在路由器中设置端口转发 2. 将选定端口转发到服务器内网IP 3. 将路由器的公网IP告知对方 ## 故障排除 ### 常见问题 1. **连接失败** - 检查IP地址和端口是否正确 - 确认防火墙设置 - 确保两台设备网络连通 2. **游戏中断** - 检查网络连接稳定性 - 重新启动游戏重新连接 3. **端口被占用** - 更换其他端口号 - 关闭占用端口的其他程序 ### 网络测试 可以使用以下命令测试网络连通性: ```bash # 测试网络连通 ping <对方IP地址> # 测试端口(需要telnet客户端) telnet <对方IP地址> <端口号> ``` ## 技术细节 - **协议**:TCP/IP - **消息格式**:自定义二进制协议 - **支持功能**: - 棋盘同步 - 悔棋处理 - 认输协商 - 连接检测 - 延时控制 ## 安全注意事项 1. **局域网使用**:建议安全的家庭或办公环境 2. **广域网使用**: - 不要使用默认端口8888 - 游戏结束后及时关闭程序 - 注意保护个人网络信息 ## 更新日志 ### v7.0 (2025-07-20) - 网络配置参数统一管理 - 所有网络相关配置集中到config.h - 消息类型定义优化 - 统一消息协议宏定义 - 代码架构重构 - 提升网络模块的可维护性 - 配置文件支持 - 网络参数可通过配置文件调整 ### v6.1 (2025-07-10) - 完善网络对战功能 - 支持TCP/IP通信 - 实现棋盘同步 - 连接状态和协议优化 - 支持多种操作 - 添加延时控制等游戏功能(延时显示、认输、悔棋等) --- **开发者:** 刘航宇 **联系邮箱:** 3364451258@qq.com **项目主页:** https://github.com/LHY0125/Gobang-Game