これは、ネットワーク ソケットから受信したプレフィックス付きメッセージの処理方法に関する追加の質問です。私がやろうとしていることは次のとおりです。
- 最初の 4 バイトを読み取ります (これは $prefix であり、メッセージの長さを表します)
- $prefix のサイズが実際に 4 バイトで、整数かどうかを確認します
- $prefix からの長さを使用して完全な $message を読み取ります
- メッセージのサイズが実際に $prefix バイトであるかどうかを確認します
これまでのところ、次の 2 行のコードがあります。
$prefix = socket_read($socket, 4, PHP_BINARY_READ); //No 1.
//No 2: how to do the checks?
$message = socket_read($socket, $prefix, PHP_BINARY_READ); //No 3.
//No 4: how to do the checks?
上記のチェックを行うにはどうすればよいですか?
補足: ネットワーク ソケット接続を介して送信されるすべてのデータは UTF8、リトル エンディアンです。