這份代碼我也是無心中來自一個朋友,據他說也是來源於互聯網,服務器端代碼原來是linux版本的,但被厲害的大神修改爲能夠在Windows上運行。(若是不當心侵犯了您的版權,請聯繫我刪除)。好在,這份代碼中使用的大多數方法和接口都是能夠跨Windows和linux兩個平臺的,因此linux開發下的朋友請不要感到不適,咱們學習這份代碼更多的不是糾結細節而是學習思路和源碼。mysql
遊戲主solution文件用Visual Studio打開後以下圖所示:linux
這裏總共有10個工程項目,模塊比較多。咱們應該從何處入手呢?咱們先看下源碼目錄:redis
咱們進入Server目錄,發現以下一個文件:sql
咱們打開看一下內容:windows
cd Binx64Release
start.bat
這個代碼進入Binx64Release目錄,執行另一個start.bat,咱們進入這個目錄去看下這個文件內容:服務器
taskkill /f /t /im redis-server.exe
taskkill /f /t /im CSBattleMgr.exe
taskkill /f /t /im SSBattleMgr.exe
taskkill /f /t /im GSConsole.exe
taskkill /f /t /im BalanceServer.exe
taskkill /f /t /im LoginServer.exe
taskkill /f /t /im GSKernel.exe
taskkill /f /t /im RobotConsole.exe
taskkill /f /t /im LogServer.exe微信
ping -n 1 127.0>nul
start /min "redis-server" "redis-server.exe" redis.conf性能
ping -n 1 127.0>nul
start /min "redis-Logicserver" "redis-server.exe" redis-logic.conf學習
ping -n 1 127.0>nul
echo "start CSBattleMgr.exe"
start /min "CSBattleMgr" "CSBattleMgr.exe"ui
ping -n 1 127.0>nul
echo "start SSBattleMgr.exe"
start /min "SSBattleMgr" "SSBattleMgr.exe"
ping -n 1 127.0>nul
echo "start GSKernel.exe"
start /min "GSKernel" "GSKernel.exe"
ping -n 1 127.0>nul
echo "start BalanceServer.exe"
start /min "BalanceServer" "BalanceServer.exe"
ping -n 1 127.0>nul
echo "start LoginServer.exe"
start /min "LoginServer" "LoginServer.exe"
ping -n 1 127.0>nul
echo "start LogServer.exe"
start /min "LogServer" "LogServer.exe"
經過這個腳本,咱們獲得了這個服務器項目的一些信息,這個服務器由如下一些服務組成:
redis-server(啓動兩個)
CSBattleMgr
SSBattleMgr
GSKernel
BalanceServer
LoginServer
LogServer
這些服務器具體是作啥的,我如今也不知道,後面咱們會教你們如何閱讀。
另外在Bin/x64/Release/dbsql目錄咱們發下一些sql文件:
咱們打開建表的createdb.sql:
drop database if exists fball_gamedb;
drop database if exists fball_logdb;
drop database if exists fball_accountdb;
create database fball_accountdb character set utf8;
drop database if exists fball_chargedb;
create database fball_chargedb character set utf8;
drop database if exists fball_robedb;
create database fball_robedb character set utf8;
drop database if exists fball_gamedb_1;
create database fball_gamedb_1 character set utf8;
drop database if exists fball_gamedb_2;
create database fball_gamedb_2 character set utf8;
drop database if exists fball_gamedb_3;
create database fball_gamedb_3 character set utf8;
drop database if exists fball_logdb_1;
create database fball_logdb_1 character set utf8;
drop database if exists fball_logdb_2;
create database fball_logdb_2 character set utf8;
drop database if exists fball_logdb_3;
create database fball_logdb_3 character set utf8;
也就是說,這套服務須要使用mysql,咱們安裝一個mysql,並執行這個Rebuild.bat把這些庫建立一下,Rebuild.bat內容以下:
@echo off
:begin
@echo ----------1, create all game database------------
mysql -uroot -p123321<createdb.sql
mysql -uroot -p123321<grantuser.sql
mysql -uroot -p123321<fball_accountdb.sql
mysql -uroot -p123321<fball_chargedb.sql
mysql -uroot -p123321<fball_robedb.sql
mysql -uroot -p123321 fball_accountdb < fball_accountdb.sql
mysql -uroot -p123321 fball_chargedb < fball_chargedb.sql
mysql -uroot -p123321 fball_robedb < fball_robedb.sql
mysql -uroot -p123321 fball_gamedb_1 < fball_gamedb.sql
mysql -uroot -p123321 fball_gamedb_2 < fball_gamedb.sql
mysql -uroot -p123321 fball_gamedb_3 < fball_gamedb.sql
mysql -uroot -p123321 fball_logdb_1 < fball_logdb.sql
mysql -uroot -p123321 fball_logdb_2 < fball_logdb.sql
mysql -uroot -p123321 fball_logdb_3 < fball_logdb.sql
經過這個,咱們發現這裏mysql的root用戶的密碼123321。你在建立mysql時,須要建議將密碼也設置成這個。
咱們下載mysql community版本(免費的),下載地址:https://dev.mysql.com/downloa...,類型咱們選Microsoft:
注意,這套服務也使用了redis,咱們不用專門下載和編譯redis windows版本,咱們的程序目錄下已經提供了windows版本的redis的服務程序和配置文件:
咱們搞清楚基本服務器概況後,各個服務的做用以及服務之間的關係如何,咱們下一篇文章繼續分析。
歡迎關注公衆號『easyserverdev』。若是有任何技術或者職業方面的問題須要我提供幫助,可經過這個公衆號與我取得聯繫,此公衆號不只分享高性能服務器開發經驗和故事,同時也免費爲廣大技術朋友提供技術答疑和職業解惑,您有任何問題均可以在微信公衆號直接留言,我會盡快回復您。