大家好,我搞棋牌搭建差不多十年了,市面上框架换了一轮又一轮,但要说经典、资料最多、最适合新手研究整套棋牌业务逻辑的,网狐绝对算一个。最近好多人在后台问网狐怎么搭,今天我干脆把压箱底的部署笔记翻出来,从环境准备到游戏跑起来,每一步配上实际要改的代码和配置,你照着敲,八成能绕过我当年踩过的坑。
先交代一下这套教程的基准环境:Windows Server 2019/2022 + SQL Server 2017/2019 + Visual Studio 2019(C++/C#组件必须勾选)。网狐这套架构是 Windows 系的,服务端和数据库都跑在 Windows 上,别用 Linux 折腾,会走火入魔。
一、数据库:从脚本到初始化,这几行 SQL 不能省
网狐的数据库是整套系统的地基。拿到源码后先找数据库脚本,通常放在 数据库脚本 或 DB 文件夹里,文件名类似 WF_Game_2023.sql。
1. 新建数据库并导入脚本
打开 SSMS(SQL Server Management Studio),连上你的数据库实例,先建两个库:
CREATE DATABASE WHPlatformDB COLLATE Chinese_PRC_CI_AS; CREATE DATABASE WHGameScoreDB COLLATE Chinese_PRC_CI_AS; GO
WHPlatformDB 存平台信息(用户、房间、代理),WHGameScoreDB 存游戏战绩和流水。接下来导入脚本:右键 WHPlatformDB → 任务 → 导入数据 → 选择 .sql 文件执行。脚本跑完后,你会看到几十张表,核心的有 AccountsInfo(玩家账号)、GameRoomInfo(房间配置)、GlobalShareInfo(全局参数)。
2. 修改数据库连接字符串
网狐服务端是通过 ODBC 或直接连接串连数据库的。打开源码里的 DataBase 或 PlatformDB 相关项目,找到 DBConnection.cpp 或 App.config,修改连接字符串:
<add name="PlatformDB" connectionString="Data Source=127.0.0.1;Initial Catalog=WHPlatformDB;User ID=sa;Password=你的SA密码;" providerName="System.Data.SqlClient" />
同样改好 WHGameScoreDB 的连接串。别用 Windows 认证,用 SQL Server 认证,否则后面服务跑起来各种登录失败。
3. 初始化管理员和机器人数据
脚本导完后,管理员后台的初始账号一般在 BaseUser 或 AdminUser 表里,默认账号 admin,密码是 MD5 加密的,你可以直接替换成自己的:
UPDATE AdminUser SET Password = 'e10adc3949ba59abbe56e057f20f883e' WHERE UserName='admin'; -- 上面这串是 123456 的 MD5,部署测试够用了
批量插入一批机器人账号(房卡场拉人用):
INSERT INTO AccountsInfo (Account, Password, NickName, FaceID, Gender) SELECT 'Bot'+CAST(number AS VARCHAR), 'e10adc3949ba59abbe56e057f20f883e', '机器人'+CAST(number AS VARCHAR), 1, 1 FROM master..spt_values WHERE type='P' AND number BETWEEN 1001 AND 1100;

二、服务端编译与配置:核心在这里,每一步都要走稳
网狐的服务端通常包括这几个组件:PlatformServer(平台服)、GameServer(游戏服)、DBServer(数据库代理服)、LoginServer(登录服),另外还有 HallServer 或 MatchServer 等,依版本而定。
1. 用 VS2019 编译服务端
用 Visual Studio 打开解决方案(.sln),解决方案里会有一堆项目。先右键 解决方案 → 重定目标项目,把 SDK 版本切到你当前安装的 Windows SDK。然后逐个生成项目,顺序建议:DBServer → PlatformServer → LoginServer → GameServer → HallServer。
如果遇到 error C2220 警告视为错误,去项目属性 → C/C++ → 常规 → “将警告视为错误” 改成 否。如果缺少 afxwin.h 等 MFC 头文件,得重新运行 Visual Studio Installer,把 “适用于最新 v142 生成工具的 C++ MFC” 勾上。
2. 核心配置文件修改——以 PlatformServer 为例
编译成功后,在生成目录找到 PlatformServer.exe.config,或者源码里的 PlatformServer.ini,这里是整个平台的调度中心。贴出关键配置段落:
<appSettings> <!-- 平台服务监听端口 --> <add key="PlatformServerPort" value="10001"/> <!-- 数据库连接(前面改过的) --> <add key="ConnectionString" value="Data Source=127.0.0.1;Initial Catalog=WHPlatformDB;User ID=sa;Password=你的密码;"/> <!-- 游戏服务端口范围 --> <add key="GameServerBeginPort" value="10020"/> <!-- 加密密钥,客户端和服务端必须一致 --> <add key="EncryptKey" value="WANGHU_2026_GAME_KEY"/> </appSettings>
GameServer.exe 的配置文件要指定 ServerID(每个游戏服必须唯一)和 CellScore(底分),例如:
<add key="ServerID" value="1"/> <add key="RoomCount" value="50"/> <add key="CellScore" value="1"/> <!-- 1表示1倍底注,可配10、50等 -->
3. 服务启动脚本
手动一个个点 exe 太麻烦,写个批处理 start_all.bat:
@echo off start "DBServer" /D "C:\WFServer\DBServer\" DBServer.exe timeout /t 3 start "PlatformServer" /D "C:\WFServer\PlatformServer\" PlatformServer.exe timeout /t 3 start "LoginServer" /D "C:\WFServer\LoginServer\" LoginServer.exe timeout /t 2 start "GameServer1" /D "C:\WFServer\GameServer\" GameServer.exe start "HallServer" /D "C:\WFServer\HallServer\" HallServer.exe echo 所有服务已启动,请检查各窗口日志。
启动后检查 PlatformServer 的日志窗口,看到 监听端口 10001 成功 和 数据库连接成功 就算起好了。如果报错 无法连接到数据库服务器,九成是连接串的密码或 IP 写错了,另外检查 SQL Server 是否开启了 TCP/IP 协议(SQL Server 配置管理器里启用)。

三、客户端大厅改地址和资源,准备打包
网狐客户端通常是大厅+子游戏的结构,大厅负责登录、选场、进房间,子游戏是独立的 .dll 或 .apk 扩展。
1. 修改服务器连接地址
在客户端源码里找到 PlatformDefine.h 或 GameEngineDefine.h,有一组 IP 和端口定义:
#define LOGON_SERVER_IP "你的服务器公网IP" #define LOGON_SERVER_PORT 10001 #define GAME_SERVER_IP "你的服务器公网IP" #define GAME_SERVER_PORT 10020
如果是安卓版,IP 地址可能写在 assets/Config.json 或 res/raw/config.xml 里,改成:
{ "LoginServer": { "IP": "你的服务器公网IP", "Port": 10001 }, "GameServers": [ {"ServerID": 1, "IP": "你的服务器公网IP", "Port": 10020} ], "EncryptKey": "WANGHU_2026_GAME_KEY" }
EncryptKey 必须和服务端 PlatformServer.exe.config 里的完全一致,差一个字符就是连接断开。
2. 编译大厅 APK
用 Android Studio 打开客户端工程(如果源码是 Android 原生的),或者用 Cocos Creator/Unity 导出 Android 工程。常见需要修改的地方:
-
包名:
build.gradle里的applicationId "com.yourcompany.qipai",别用默认的com.wanghu.test,上架时候会冲突。 -
签名:
Build → Generate Signed Bundle/APK,新建一个 keystore,记住别名和密码。 -
网络权限:
AndroidManifest.xml中确保有<uses-permission android:name="android.permission.INTERNET"/>,并且应用不限制明文流量(若服务器暂时没配 HTTPS,需加android:usesCleartextTraffic="true")。
打包成功后把 APK 装到手机,如果卡在“正在连接服务器”,先在本机 Telnet 一下服务器 IP 和端口看通不通,再对比客户端日志和平台服日志。常见原因:端口没在云服务器安全组放行,或客户端 IP 写成了内网地址。

四、最后几步:后台上线、游戏添加与全链路测试
后台部署:网狐后台一般是 ASP.NET 站点,在 IIS 中新建网站,指向后台代码的发布目录,应用池选 .NET CLR 版本 4.0,托管管道模式选“集成”。登录后先去“游戏管理”里添加子游戏,把 GameKindItem 表里已有的游戏 ID 与游戏服绑定,再在“房间管理”里创建房间,指定 ServerID 与 GameServer 配置一致。
全流程测试清单:
-
注册新账号 → 能收到注册成功提示
-
登录大厅 → 能看到房间列表
-
进入房间 → 坐下后准备开始
-
发牌、出牌、胡牌 → 其他座位玩家实时同步
-
结算 → 查看战绩记录,数据库
WHGameScoreDB中有对应流水 -
后台 → 能看到玩家在线、实时房间数据
全部跑通后,你的网狐棋牌就算搭建完成了。当然,这套源码默认不带支付和强力反外挂,只适合学习或内网娱乐。如果要对外运营,支付对接、高防服务器、敏感词过滤、实名认证、版号资质,一样都不能少。
写在最后
网狐这套框架虽然老,但业务逻辑完整,拿来研究棋牌的整个生命周期非常合适。你如果在搭的时候卡在某个组件报错,或者在选型上纠结到底是网狐还是其他框架更适合你的运营目标,欢迎过来交流。我们团队这些年经手的棋牌源码不下百套,网狐、红鸟、大圣、荣耀等主流框架都有现成的部署方案和定制经验,从环境选配到上线护航都能做。
扫描下方二维码添加微信,备注“网狐搭建”优先通过。
玫瑰资源库












![[源码分享] 创胜系列定制版本嘉年华房卡源代码【开发引擎Cocos Creator2.4.3】-玫瑰资源库](https://www.264rose.com/wp-content/uploads/2024/10/c4ca4238a0b9238-10.jpg)




