5

PHPでソケットにバイトごとに書き込む方法は?

たとえば、次のようなことを行うにはどうすればよいですか。

socket_write($socket,$msg.14.56.255.11.7.89.152,strlen($msg)+7);

疑似コードの連結された数字は、実際には 10 進数のバイトです。あなたが私を理解してくれることを望むよ。

4

3 に答える 3

7

pack関数を使用して、データを任意のデータ型にパックできます。次に、ソケット関数のいずれかで送信します。

$strLen = strlen($msg);

$packet = pack("a{$strLen}C7", $msg, 14, 56, 255, 11, 7, 89, 152);

$pckLen = strlen($packet);

socket_write($socket, $packet, $pckLen);
于 2010-03-18T21:25:32.187 に答える
1

http://www.php.net/manual/en/function.socket-create.php#90573に従って

あなたはできるはずです

socket_write($socket,"$msg\x14\x56\x255\x11\x7\x89\x152",strlen($msg)+7);
于 2010-03-18T21:04:14.950 に答える
0

PHP 6 より前では、バイトは単なる文字でした。文字列を書き出すことは、バイト配列を書き出すことと同じです。それらがアスキー文字の 10 進数値である場合、$msg... ビットを次のように置き換えることができます。

$msg.chr(14).chr(56).chr(255).chr(11).chr(7).chr(89).chr(152)

あなたが何をしようとしているのかを説明していただければ、より役立つ回答を提供するのがより簡単になりますが、それまでの間、これまでに説明したことは達成されます.

于 2010-03-18T20:59:59.573 に答える