4

我正在通过 TCP 套接字进行 API 集成。该协议要求每条消息以 STX (\x02) 开头并以 ETX (\x03) 结尾。

当我执行以下操作时,服务器会按预期做出反应:

s.send("\x02Message\x03")

如果我像这样构建消息:

msg = "Message"
msg = "\x02" + msg + "\x03"
s.send(msg)

我的理解应该是一样的,服务器没有按预期做出反应。我错过了什么?

(如果这有什么不同,我在 OS-X 上运行 Python 2.6.2)

4

2 回答 2

-2

它是否适用于:

msg = "\x02Message\x03"
s.send(msg)

在某些情况下,我在发送命令中写入字符串或将字符串传递给方法时存在差异。

或者有什么结果:

msg = str("\x02" + msg + "\x03")
s.send(msg)

?

于 2012-05-03T09:07:50.957 回答
-2

当您在 python 中将字符串添加在一起时,组合字符串之间会添加空格。这可能是问题吗?

msg = "消息"

味精 = "\x02" + 味精 + "\x03"

结果:“\x02 消息 \x03”

我建议使用:

msg = ''.join('\x02', 消息, '\x03')

于 2018-07-30T14:17:45.893 回答