【C#】Server/Client サンプル
【MMORPG ゲームサーバープログラミング】
第2章チャットサーバーを参考にServer/Client実装するサンプルです。
MMORPGを作りたくてサーバプログラミングを調べたら
ネット上のサンプルでは
のが多くて、MMORPGではの解説が少なかった。
この本では、
- 受信用スレッド
- 送信用スレッド
- 同期用スレッド
- サーバー間の通信スレッド
4つスレッドを分けて負荷分散する方法を紹介されました。
少し古い本(2005年)なので、記載されたサンプルは C言語 で書かれてました。
Unityとロジック共有したいため、今回はC#にアレンジします
※読みやすくするため一部コードは省いてます。(いつか解説します。
Session
Client -> Server 接続後、Server側がClientの接続情報を保持するクラスです
gist.github.com
Command
受信したデータを解析し、プロトコールの種類やシリアライズ済のデータを保持するクラスです
gist.github.com
Server
チャットサーバーです。
やってること
- Main関数には TcpListener を初期化と送受信スレッドを生成する
- 各スレッドは while(true) を使ってループし処理を実行する
Client
フロントエンドです
Unityを使ってます
gist.github.com