2012-05-03 13 views
2

私はTCPソケットを介してAPI統合を行っています。プロトコルは各メッセージがSTX(\ x02)で始まりETX(\ x03)で終わることを要求します。Ascii文字(STX、ETX)と文字列を組み合わせると、文字列を一度に書くのとは異なります

私は予想通り、サーバが反応し次のようにします。

s.send("\x02Message\x03") 

私はこのようなメッセージを構築する場合:私の理解に

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

同じである必要があり、サーバが」doesnの期待どおりに反応する。何が恋しいの?

(それはすべての違いを、私はOS-XでPython 2.6.2を実行しています)

+1

私にとっては両方のバージョンが機能します。いくつかのトレーサ(tcpdump、wireshark、...)を使ってTCP経由で実際にサーバに転送されているものを確認しましたか? –

答えて

0

それはで動作します:

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

は、いくつかのケースでは、私は、送信中の文字列を書くの違いを持っ​​ていましたコマンドを実行するか、文字列をメソッドに渡します。

かと何の結果:

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

関連する問題