【发布时间】:2021-11-20 21:08:39
【问题描述】:
我需要通过 tcp 发送一个字符串。字符串的第一部分之一是命令变量的长度
Example:
command = STATUS?UPDATE
我需要在下面发送以下字符串
sendCommand = '\x00\x00\x00'+STRINGLENGTH+'\x02'+command+'\x0D\x0A'
我的字符串长度是 11,所以我需要 STRINGLENGTH 是 11 的十六进制等效值,即 0xB,除了我需要它输出为 \x0B
用前导 0 填充它很容易,但我无法将其输出为 \x 而不是 0x,如果我进行字符串替换,则会对其进行处理作为文本而不是十六进制,所以它不起作用。
我的最终十六进制字符串应该是:
\x00\x00\x00\x0B\x02\x53\x54\x41\x54\x55\x53\x3f\x55\x53\x45\x52\x0D\x0A
我反而得到:
\x00\x00\x000x0B\x02\x53\x54\x41\x54\x55\x53\x3f\x55\x53\x45\x52\x0D\x0A
关于如何正确格式化的任何想法?
【问题讨论】:
-
您几乎可以肯定应该使用
bytes... 不?