認証サーバーとチャットサーバーの構築(1) 環境構築とフロー構想・パケット定義
サーバーマシン組立 サーバーにするマシンを組み立てた。 ■マシン概要 OS Solaris 8x86 CPU Pen4 3.0G Mem 1.0G ■開発環境 コンパイラ gcc 2.95 データベース MySQL 3.23.58 デバッカ Gdb,truss ■ネットワーク 光回線(フレッツ) 100Mbps
パケットの定義 長さ (2バイト) ヘッダ (1バイト) データ エンドマーカー (2バイト) ・認証、チャットサーバーなのでできるだけ簡素なパケット構造にする。 ・パケットの種類をヘッダ部分、主なデータはデータ部分に格納する。 ・長さとエンドマーカーはエラーチェック用。
パケットプロトコル設計 認証パケット フロー 項目 値 長さ 型 その他 C→S パケットの長さ 2 Short ヘッダ RK_USER_AUTH 1 Char ユーザーIDの長さ ユーザーID文字列の長さ ユーザID ? String サイズは動的に変動 パスワードの長さ パスワード文字列の長さ パスワード エンドマーカー 0xC8D1 S→C PK_USER_AUTH アクセス人数 ユーザーID ユーザー番号 short
チャットパケット フロー 項目 値 長さ 型 その他 C→S パケットの長さ 2 Short ヘッダ PK_USER_CHAT 1 Char チャットメッセージの長さ チャットメッセージ ? String サイズ動的 エンドマーカー 0xC8D1 S→C ユーザIDの長さ ユーザID short
認証パケット例 定義 長さ ヘッダ ID長さ ID PASS長さ PASS EDM 開始番地 2 3 4 10 11 15 値 17 6 2 3 4 10 11 15 値 17 6 midori 1234 0xC8D1 1
現在、サーバーとクライアントのプログラムが、まだ未完成。 サーバー側のメモリ消費がひどいので修正する。(おそらくパディング? 同期に使っているポインターのセクタオブジェクトの再構築が必要。