编辑 | blame | 历史 | 原始文档

EventServer Python版本

这是一个Python 2.7版本的游戏事件接收与记录服务器,用于接收游戏客户端发送的事件数据并记录到本地文件中。

功能特性

  • TCP网络服务,接收游戏客户端/服务器事件
  • 支持多种事件协议(二进制事件、字符串事件)
  • 客户端登录/登出/心跳管理
  • 灵活的文件写入策略(按天/按小时/按大小/单文件)
  • 线程安全的数据处理
  • 实时状态监控

文件结构

EventServerPY/
├── main.py              # 主程序入口
├── config.py            # 配置文件管理
├── protocol.py          # 网络协议定义
├── server.py            # TCP服务器
├── clients_manager.py   # 客户端管理
├── file_manager.py      # 文件写入管理
├── packet_processor.py  # 数据包处理
└── Config.ini           # 配置文件

配置说明

Config.ini 配置文件说明:

[WriteFile]
WriteMode=1              ; 1=按天, 2=按小时, 3=按大小, 4=单文件
MaxFileSize=1024         ; 最大文件大小(KB),仅WriteMode=3时有效
LogFilePath=.\EventLogs  ; 日志文件路径

[Network]
ListenPort=60000         ; 监听端口

启动方式

python main.py

数据格式

事件数据以JSON格式写入日志文件:

{
    "event_id": "1001",
    "data": "event_data_string",
    "timestamp": "2026-02-01 12:00:00",
    "cid": 1
}

协议说明

协议头 (2字节)

  • Cmd: 主命令 (1字节)
  • SubCmd: 子命令 (1字节)

主要协议

  • 0x01 0x01 - 登录
  • 0x01 0x02 - 登出
  • 0x01 0x03 - 事件发送
  • 0x01 0x04 - 心跳
  • 0x01 0x05 - 字符串事件发送

注意事项

  1. 确保Python版本为2.7
  2. 确保有足够的磁盘空间存储日志文件
  3. 端口60000需要在防火墙中开放
  4. 建议使用命令行启动以便查看实时日志

状态监控

服务器每5秒显示一次状态:
- Connections: 当前连接数
- Queue: 待处理数据包数量
- Success: 成功写入次数(增量/总计)
- Fail: 失败写入次数(增量/总计)