1

データ文字列は、ソケット接続を介して受信されます。アクション変数が'IDENTIFY'である最初の例を受け取ると、それは機能します。しかし、アクション変数が'MSG'である2番目の例を受け取った場合、それは比較されません。

そして、最も奇妙なことは、ソケットクライアントの代わりにTelnetを使用すると、両方が正常に比較されていることです。しかし、文字列は同じです...文字列が同じ方法でエンコードされていない可能性はありますか?どうやって知ることが出来ますか?

データ例:

data = 'IDENTIFY 54143'
or
data = 'MSG allo'

action = data.partition(' ')[0]
if action == "MSG":
    self.sendMessage(data)
elif action == "IDENTIFY":  
    self.sendIdentify(data)
else:
    print "false"
4

1 に答える 1

5

問題を再現できません。デバッグするには、のを印刷またはログに記録しますrepr()dataこれにより、原因が示される可能性があります(おそらく、取得方法に基づいて、action目に見えないバイナリバイトが侵入している可能性があります[[表示しません]]。 )。dataaction

于 2009-09-29T14:50:26.653 に答える