3

PHP ソケットを介してデータのバイナリ表現を送信しようとしています。

したがって、数値が 15 の場合、15 のsocket_writeバイナリ表現として 00001111 が送信されます。

どうすればいいですか?

4

2 に答える 2

4

chr関数を使用します。

socket_write( $fp, chr(15));

\x16 進値でエスケープを使用することもできます。

socket_write( $fp, "\xff\xff\xff\xff" );

それぞれの値が 255 の 4 バイトを送信します。

于 2013-01-14T07:06:00.330 に答える
2

任意のデータからバイナリ表現を生成するには、pack()関数を使用します。

例:

$data = pack("v", 15); // "i" is unsigned little endian integer
socket_write($socket, $data);

さまざまな形式の詳細については、マニュアル ページを参照してください。unpack()逆の機能もあります。

于 2013-01-14T07:11:29.210 に答える