PHPソケットを使用してネットワーク接続を介してPHPスクリプトからC#アプリにJSONメッセージを送信したいと思います。
通常、バイナリプロトコルの場合、すべてのメッセージの最初の4バイトは、メッセージの長さ(バイト数)を表す整数である必要があります。
C#では、すべてのメッセージの前に、メッセージの長さを示す整数を次のように付けます。
byte[] msgBytes = UTF8Encoding.UTF8.GetBytes("A JSON msg");
byte[] prefixBytes = BitConverter.GetBytes(msgBytes.Length);
byte[] msgToSend = new byte[prefixBytes.Length + msgBytes.Length];
Buffer.BlockCopy(prefixBytes, 0, msgToSend, 0, prefixBytes.Length);
Buffer.BlockCopy(msgBytes, 0, msgToSend, prefixBytes.Length, msgBytes.Length);
私が理解しているように、PHPでは関数socket_sendは文字列のみを受け入れます。では、PHP 5.xで同じプレフィックスを作成するにはどうすればよいですか?
更新:ネットワークソケットから受信したときにそのようなプレフィックス付きデータを処理する方法についてのフォローアップ質問を投稿しました。