2009-03-27 6 views
5

noob Pythonの質問に対する謝罪をしていますが、私はずっと長い間これに取り組んできました。pythonソケットの出力を処理するrecv

私は、サーバーからデータを受け取るためにPythonソケットを使用しています。私はこれを行う:


data = self.socket.recv(4) 
print "data is ", data 
print "repr(data) is ", repr(data) 

コンソールに出力がこれです:

データである
のrepr(データ)された '\ X00 \ X00 \ X00 \ X01'

本質的に4バイトの数値を含むこの文字列をintに変換したいのですが、実際にはC言語では長いものになります。このデータオブジェクトを簡単に管理できる数値にするにはどうすればよいですか?

答えて

10

おそらくstructを使用します。

import struct 

data = self.socket.recv(4) 
print "data is ", data 
print "repr(data) is ", repr(data) 
myint = struct.unpack("!i", data)[0] 
+0

ありがとう:

コードは次のようになります。ビッグエンディアンでタプルとして出てくるので、実際には "myint = unpack(" i "、data)[0]"を実行する必要がありました。編集したい場合は、私は正しい答えをマークします。もう一度、助けてくれてありがとう。 – chrism1

+0

タプル部分を紛失しました。 :)あなたの要求ごとに答えを編集しました。 – grieve

+0

myint = struct.unpack( "!i"、data)[0] –

関連する問題