Python 将字符串与Ascii字符(STX、ETX)组合起来与一次写入字符串不同

Python 将字符串与Ascii字符(STX、ETX)组合起来与一次写入字符串不同,python,Python,我正在研究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,如果这有什么不同的话)它是否可以与: msg = "

我正在研究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,如果这有什么不同的话)

它是否可以与:

msg = "\x02Message\x03"
s.send(msg)
在某些情况下,我在send命令中写入字符串或将字符串传递给该方法时存在差异

或者,结果如何:

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

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

msg=“消息”

msg=“\x02”+msg+“\x03”

结果:“\x02消息\x03”

我建议使用:

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


对我来说,两种版本都有效。您是否使用一些跟踪器(tcpdump、wireshark等)检查了通过TCP真正传输到服务器的内容?
msg
的两种结构在Python 2中产生相同的字符串,假设消息本身是ASCII。因此,要么我们缺少关于消息内容的信息,要么我们缺少关于服务器的信息。不管怎样,这个8年前的消息在当前形式下都是无法回答的,应该关闭它。“当您在python中将字符串添加到一起时,在组合的字符串之间会添加空格”-这不是真的。