我正在尝试使用socket_write($socket, XXXX , 1);
函数将0x01
HEX作为Byte发送。
有一部分文档:
"。。。如果是,服务器将回复模块0x01,如果不是,则重播0x00。服务器必须发送答案-1字节的HEX格式"
有多种选择:
-
使用
pack()
函数时,H*
格式说明符的字符串参数应不包括0x
前缀。pack("H*", "01")
-
要将单个十六进制数转换为字节,还可以使用
chr()
。chr(0x01)
这里,PHP首先将十六进制文字
0x01
解释为纯整数1
,而chr()将其转换为字符串。反转(用于套接字读取)为ord()
。 -
最普遍的替代方法是只使用C字符串转义:
"'x01"
或者用八进制表示法:
"'001"
-
这里的
hex2bin("01")
和pack("H*")
一样工作。相反方向有bin2hex
。