您好,登錄后才能下訂單哦!
這份代碼我也是無意中來自一個朋友,據他說也是來源于互聯網,服務器端代碼原來是linux版本的,但被厲害的大神修改成可以在Windows上運行。(如果不小心侵犯了您的版權,請聯系我刪除)。好在,這份代碼中使用的大多數方法和接口都是可以跨Windows和linux兩個平臺的,所以linux開發下的朋友請不要感到不適,我們學習這份代碼更多的不是糾結細節而是學習思路和源碼。
游戲主solution文件用Visual Studio打開后如下圖所示:
這里總共有10個工程項目,模塊比較多。我們應該從何處入手呢?我們先看下源碼目錄:
我們進入Server目錄,發現如下一個文件:
我們打開看一下內容:
cd Bin\x64\Release
start.bat
這個代碼進入Bin\x64\Release目錄,執行另外一個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"
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/downloads/mysql/](),類型我們選Microsoft:
注意,這套服務也使用了redis,我們不用專門下載和編譯redis windows版本,我們的程序目錄下已經提供了windows版本的redis的服務程序和配置文件:
我們搞清楚基本服務器概況后,各個服務的作用以及服務之間的關系如何,我們下一篇文章繼續分析。
歡迎關注公眾號『easyserverdev』。如果有任何技術或者職業方面的問題需要我提供幫助,可通過這個公眾號與我取得聯系,此公眾號不僅分享高性能服務器開發經驗和故事,同時也免費為廣大技術朋友提供技術答疑和職業解惑,您有任何問題都可以在微信公眾號直接留言,我會盡快回復您。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。