FrontPage

送るデータの仕様

一回の_SENDALLで送られる文字列を"パケット"と呼ぶ。
パケットの先頭は以下の3Byteである必要がある。

1byte目必ず'@'
2byte目送り先のPlayer番号に128を足したもの
3byte目プロトコルのVersion*64に下記のパケットフラグを足したもの

なお、現在のVersionは1である。

パケットフラグ

1回に送られるパケットの役割は3バイトめの下4Bitに収められたパケットフラグで決まる。
受け取った側はこのパケットフラグを見て4バイト目以降に収められたデータを解釈する必要がある。
パケットフラグ一覧は以下のとおり

名前説明引数必要Version
1OK要求に対し了解したことを伝える1
2NG要求を拒絶することを伝える失敗した理由を先頭に数字1Byte+文字列1
3Connect接続を要求する1
4Disconnect接続の切断を要求する1
5Ping通信の往復にかかる時間を測定する送信時の_TICKS1
15App通信確立後上位のプロトコルが使用している1

接続が確立していない場合はConnect以外のすべてのパケットは無視するかNGを返すかしなくてはならない。

NGのエラーコード

エラー時にNGの次に来る1Byteの数字は以下のとおり。エラーコードに続く文字列は下記を参考に適当に決めること

エラーコード(10進)受信したメッセージ意味
1Connect受信したソケットはサーバではないので接続は受けられない
2Connect受信したソケットはサーバだがすでに他のPlayerと接続している
3Connect受信したソケットはサーバで、かつ接続可能な状態だが気に食わないから拒否った
17Disconnectそもそもアンタとは接続してないから切断しろといわれても困る
33Pingアンタとは接続してないからPingに答えるわけには行かない

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-05-16 (日) 21:52:13