将字符串与Ascii字符(STX,ETX)组合在一起与在

2024-09-24 22:27:32 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

s.send("\x02Message\x03")

如果我像这样生成消息:

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

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

(如果这有什么区别的话,我正在OS-X上运行Python2.6.2)


Tags: 服务器sendapi消息协议message结尾msg
2条回答

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

msg = "Message"

msg = "\x02" + msg + "\x03"

result: "\x02 Message \x03"

我建议使用:

msg = ''.join('\x02', message, '\x03')

它是否适用于:

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

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

或者结果是什么:

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

是吗?

相关问题 更多 >