工程参考/配置文件/Server/BillingInfo.ini

来自天龙知识库
跳到导航跳到搜索


首页 · 配置文件索引 · 修改约定

这份文件配置 Billing 的账号数据库、允许哪些服务连接 Billing,以及登录人数限制。它不提供玩家登录入口,Billing 的监听端口取自 ServerInfo.ini 的 [Billing] Port0。

位置与生效 · 字段详解 · 修改实例 · 验证与排查

文件位置与生效

项目 说明
服务器运行路径 Server/Config/BillingInfo.ini,以程序实际工作目录为准;源码 resources 中的文件是样本。
主要使用者 Billing 读取数据库及限制;访问名单由 Billing 监听管理器读取
生效方法 这六份文件通过公共初始化流程读取,主要使用者在本页标明;不需要把它们复制到玩家客户端。重新加载配置的入口没有重读本页字段。修改后按正常流程保存并停服,再重启使用这份配置的程序;服务共用同一 Config 目录时,相关进程须使用一致配置。
样本格式 ASCII,换行为 CRLF;保留原编码、节名、键名与换行,不自动改成 UTF-8。

[System] 配数据库和自动注册;[Access] 配内部来源 IP;[Limit] 配登录数量限制。三组互不替代。

文件格式

使用 [节名] 与 Key=Value。节名和键名按源码拼写保留;本读取器按大小写精确匹配,节标题从行首开始。推荐沿用原有 CRLF 换行,在单独一行用分号写注释,不向值里插入制表符,也不依赖引号转义。详细读取边界见修改约定。

字段详解

表中“必填”表示读取代码要求存在,并不表示程序已校验业务取值合法。序号字段中的 [n] 表示按数量展开,不能原样写成带 [n] 的键。

[System]

项目与类型 含义与修改要点 缺项或特殊值
DBIP
字符串,地址
保存配置中的数据库主机地址。当前核对的 ODBC 连接代码没有把它传入 SQLConnect;实际主机由 DBName 指定的数据源配置决定。修改它不能代替修改 ODBC 数据源。 需提供有效连接信息;不要依赖缺项或错误数据源。
DBPort
整数,端口
保存配置中的数据库端口。当前连接调用不使用此值建立连接;实际端口在对应 ODBC 数据源中设置。不能填游戏或登录端口。 需提供有效连接信息;不要依赖缺项或错误数据源。
DBName
字符串,ODBC 数据源名
作为 SQLConnect 的数据源名称传入。它要对应服务器电脑上已配置的 ODBC DSN;不一定等于数据库中的库名。数据源内部还需选对实际数据库。 需提供有效连接信息;不要依赖缺项或错误数据源。
DBUser
字符串
连接数据库使用的用户,不是玩家账号或 Wiki 账号。应具有目标数据库所需权限。 需提供有效连接信息;不要依赖缺项或错误数据源。
DBPassword
字符串
数据库用户的密码;当前 Billing 连接直接传入此字符串,没有读取 CryptPwd 的分支。不要在本文件凭空添加 CryptPwd 期待解密。 需提供有效连接信息;读取缺项没有可靠的可用默认值。
AutoRegister
整数,0/非0
缺少账号时是否允许认证流程自动创建账号。0 关闭,非 0 开启;需要正确数据库结构和客户端请求,不能替代完整注册与权限管理。 缺失时 FALSE,即关闭。

[Access]

项目与类型 含义与修改要点 缺项或特殊值
AllowIPCount
整数,0 到 16
允许连接 Billing 的来源地址数量。0 或缺失时本名单不限制来源;正数时读取连续 AllowIP0 到 AllowIP[n-1]。负数或超过 16 会使初始化失败。 缺失时 0。
AllowIP[n]
IPv4 字符串,精确匹配
填写 Login 等服务连接 Billing 时实际呈现的来源 IP。源码使用字符串相等判断,不支持 CIDR、星号或 IP 段。名单启用时缺少条目、空条目或长度超限都会使启动失败。 n 从 0 到 AllowIPCount-1。

[Limit]

项目与类型 含义与修改要点 缺项或特殊值
MaxClientCount
整数,登录数量
正数限制 Billing 记录的总登录数量;显式填写 0 或负数时转换为 0,表示不启用此项限制。它不是 TCP 连接池大小。 缺失时默认 500。
PcMaxClientCount
整数,同机器标识登录数量
按客户端上报的 MAC 标识统计同机器登录数量;不是按公网 IP 统计,也不能保证识别物理电脑。正数启用,0 或负数转换为 0 表示不启用。 缺失时默认 3。

常用修改实例

以下均是局部教学片段,修改原文件对应位置,不能覆盖整份文件。IP、编号、周期均为教学值。

单机部署中只允许本机服务连接 Billing

修改前的教学片段:

[Access]
AllowIPCount=0

修改后:

[Access]
AllowIPCount=1
AllowIP0=127.0.0.1

先确认 Login 到 Billing 的连接使用 127.0.0.1;若实际来源是局域网地址,就填写那个实际来源。保留其他组。这里填写的是服务来源,不是朋友的客户端 IP,名单生效后核对 Login 仍能连接 Billing。

验证与排查

重启相关服务,检查 Billing 日志中的数据源连接结果、名单数量和登录限制;确认 Login 连接成功,再测试已存在账号。自动注册或数量限制修改需要分别实测,不只看端口打开。

当前 Windows 工程为 Billing 设置专用编译条件,使用 BillingInfo.ini 数据库分支。Login 等进程读取 ServerInfo.ini 的 [Billing] 地址列表;不要把二者混淆。DBName 是 ODBC 数据源名,数据库地址须在对应位数的数据源中核对。

关联与依据

ServerInfo.ini · LoginInfo.ini

服务端外网设置 · 登录器配置 · Lua 接口索引

  • Common/ServerBase/Config.cpp:加载位置、字段读取与重新加载范围
  • Common/ServerBase/Config.h:初始化值与配置结构
  • Common/ServerBase/Ini.cpp:INI 实际解析规则
  • Common/ServerBase/Ini.h:读取失败与返回方式
  • Common/ServerBase/FileDef.h:运行时相对路径
  • Common/GameDefine2.h:程序类型与共享内存类型枚举
  • Server/Server_2026_Project.props:当前 Windows 工程的条件编译定义
  • Server/Server/BillingServer/Billing/Main/ServerManager.cpp:字段使用、连接或数据处理分支
  • Server/Server/BillingServer/Billing/Main/ServerManager.h:字段使用、连接或数据处理分支
  • Server/Server/BillingServer/Billing/Main/UserDBManager.cpp:字段使用、连接或数据处理分支
  • Server/Server/BillingServer/Billing/Main/DBManager.cpp:字段使用、连接或数据处理分支
  • Server/Server/BillingServer/Billing/Main/ODBCInterface.cpp:字段使用、连接或数据处理分支

核对范围为当前维护源码与配置样本;未启动游戏、服务端或数据库。配置解析测试与游戏业务测试分开记录;文中运行效果仍需要实测。