Files
Gobang-Game/MD/NETWORK_README.md
T

4.6 KiB
Raw Blame History

五子棋网络对战使用说明 (v8.0)

功能概述

本项目支持网络对战功能,允许两台设备通过网络进行实时五子棋对战,支持服务器/客户端连接。v8.0版本新增了GUI界面的网络对战支持,提供更直观的可视化网络游戏体验。

v8.0网络功能增强

  • GUI网络对战:图形化界面支持网络游戏
  • 可视化连接状态:实时显示网络连接状态
  • 双版本网络支持:控制台和GUI版本均支持网络功能
  • 网络状态指示:图形化显示连接、等待、游戏状态

编译方法

控制台版本

gcc -std=c17 -o gobang.exe *.c -lws2_32

GUI版本(v8.0新增)

gcc -std=c17 -o gobang_gui.exe *.c -ID:\settings\SDL\SDL3-3.2.22\x86_64-w64-mingw32\include -LD:\settings\SDL\SDL3-3.2.22\x86_64-w64-mingw32\lib -lSDL3 -lws2_32
copy "D:\settings\SDL\SDL3-3.2.22\x86_64-w64-mingw32\bin\SDL3.dll" .

注意:

  • Windows系统需要添加 -lws2_32 链接库
  • GUI版本需要SDL3库支持
  • Linux系统不需要ws2_32链接库参数

使用方法

1. 启动游戏

运行编译后的程序

.\gobang.exe

2. 选择网络对战模式

在主菜单中选择 3. 网络对战

3. 选择连接模式

模式1:创建房间(作为服务器)

  • 选择 1. 创建房间(作为服务器)
  • 输入监听端口(默认8888,建议使用1024-65535范围内的端口)
  • 程序会显示本机IP地址,将此IP告知对方
  • 等待对方连接

模式2:加入房间(连接到服务器)

  • 选择 2. 加入房间(连接到服务器)
  • 输入服务器IP地址
  • 输入服务器的端口号(与服务器设置的端口一致)
  • 连接到服务器

4. 开始游戏

  • 连接成功后游戏自动开始
  • 服务器为玩家1(黑棋),客户端为玩家2(白棋)
  • 玩家1先手

游戏操作

基本操作

  • 落子:输入坐标 行号 列号,例如:7 7
  • 认输:输入 Ss
  • 悔棋:输入 Rr(需要对方同意)

网络功能

  • 自动同步:落子操作会自动同步给对方
  • 连接检测:自动检测网络连接状态
  • 延时显示:支持回合延时显示,避免过快操作
  • 悔棋协商:悔棋需要对方同意才能生效

网络配置

端口设置

  • 默认端口: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. 端口被占用

    • 更换其他端口号
    • 关闭占用端口的其他程序

网络测试

可以使用以下命令测试网络连通性:

# 测试网络连通
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