如何通过PHP套接字发送二进制表示?

时间:2013-01-14 07:04:38

标签: php sockets binary

我正在尝试通过PHP套接字发送数据的二进制表示。

因此,如果数字是15,socket_write将发送00001111作为15的二进制表示。

我该怎么做?

2 个答案:

答案 0 :(得分:4)

使用chr功能:

socket_write( $fp, chr(15));

您还可以使用带有十六进制值的\x转义符:

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

将发送4个字节,每个字节值为255。

答案 1 :(得分:2)

要从任意数据生成二进制表示,请使用pack()函数。

示例:

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

有关各种格式的详细信息,请参见手册页。反向功能还有unpack()