認証サーバーとチャットサーバーの構築(1)

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