2012-05-03 99 views
2

我正在通過TCP套接字進行API集成。該協議要求每條消息以STX(\ x02)開頭,並以ETX(\ x03)結尾。將字符串與Ascii字符組合(STX,ETX)出來不同於立即寫入字符串

當我做服務器反應如預期如下:

s.send("\x02Message\x03") 

如果我建立這樣的消息:

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

這在我的理解應該是一樣的,服務器沒有按」沒有按預期做出反應。我錯過了什麼?

(我在OS-X上運行的Python 2.6.2如果有什麼差別)

+1

對於我來說這兩個版本的工作。你有沒有通過TCP跟一些示蹤器(tcpdump,wireshark,...)檢查真正傳輸到服務器的內容? –

回答

0

是否與工作:

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

在某些情況下,我產生了分歧寫發送字符串裏面命令或將字符串傳遞給方法。

還是什麼結果有:

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