[[FrontPage]]
*送るデータの仕様 [#pab793f4]
一回の_SENDALLで送られる文字列を"パケット"と呼ぶ。&br;パケットの先頭は以下の3Byteである必要がある。&br;
|1byte目|必ず'@'|
|2byte目|送り先のPlayer番号に128を足したもの|
|3byte目|プロトコルのVersion*64に下記のパケットフラグを足したもの|
なお、現在のVersionは1である。
**パケットフラグ&br; [#ya01bee4]
1回に送られるパケットの役割は3バイトめの下4Bitに収められたパケットフラグで決まる。&br;受け取った側はこのパケットフラグを見て4バイト目以降に収められたデータを解釈する必要がある。&br;パケットフラグ一覧は以下のとおり&br;
|値|名前|説明|引数|必要Version|
|1|OK|要求に対し了解したことを伝える||1|
|2|NG|要求を拒絶することを伝える|失敗した理由を先頭に数字1Byte+文字列|1|
|3|Connect|接続を要求する||1|
|4|Disconnect|接続の切断を要求する||1|
|5|Ping|通信の往復にかかる時間を測定する|送信時の_TICKS|1|
|15|App|通信確立後上位のプロトコルが使用している||1|
接続が確立していない場合はConnect以外のすべてのパケットは無視するかNGを返すかしなくてはならない。
***NGのエラーコード&br; [#hf9f78a0]
エラー時にNGの次に来る1Byteの数字は以下のとおり。エラーコードに続く文字列は下記を参考に適当に決めること
|エラーコード(10進)|受信したメッセージ|意味|
|1|Connect|受信したソケットはサーバではないので接続は受けられない|
|2|Connect|受信したソケットはサーバだがすでに他のPlayerと接続している|
|3|Connect|受信したソケットはサーバで、かつ接続可能な状態だが気に食わないから拒否った|
|17|Disconnect|そもそもアンタとは接続してないから切断しろといわれても困る|
|33|Ping|アンタとは接続してないからPingに答えるわけには行かない|