我正在通过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,如果这有任何区别的话)
答案 0 :(得分:0)
是否适用于:
msg = "\x02Message\x03"
s.send(msg)
在某些情况下,我在send命令中写入字符串或将字符串传递给方法时存在差异。
或者结果如下:
msg = str("\x02" + msg + "\x03")
s.send(msg)
答案 1 :(得分:0)
在python中将字符串添加在一起时,组合的字符串之间会添加空格。这可能是问题吗?
msg =“消息”
味精=“ \ x02” +味精+“ \ x03”
结果:“ \ x02消息\ x03”
我建议使用:
msg =''.join('\ x02',消息,'\ x03')