5

如何在 PHP 中逐字节写入套接字?

例如,我该怎么做:

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

伪代码连接的数字实际上是 dec 中的字节。希望你能理解我。

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 之前,字节只是字符。写出一个字符串与写一个字节数组是一样的。如果这些是 ascii 字符十进制值,您可以将 $msg... 位替换为:

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

如果您能解释您正在尝试做什么,我们将更容易提供更有帮助的答案,但同时完成您迄今为止所描述的内容。

于 2010-03-18T20:59:59.573 回答