2012-01-18 5 views
7

私はPythonでプログラミングするのがとても新しいですが、必然的に一緒に素早く何かをハックする必要がありました。Pythonで文字列以外のものを送るにはどうすればいいですかsock.send()

UDPを介してデータを送信しようとしていますが、socket.send()を実行すると、データを文字列形式で入力する必要があるという点を除いて、すべて機能しています。

import socket 


IPADDR = '8.4.2.1' 
PORTNUM = 10000 

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0) 

s.connect((IPADDR, PORTNUM)) 

s.send('test string'.encode('hex')) 

s.close() 

は、どのように私はそれを得ることができ、私はs.sendよう進数で何かを行うことができるように:あなたは私がやっているかを見ることができますので、ここに私のプログラムである(FF:23:25:A1)は、例えば、そうWiresharkのパケットのデータ部分を見ると、ff:23:25:a1

答えて

12

Python 2.7または3.2を使用していますか? 3.2では

は、あなたができる:

data = bytes.fromhex('01AF23') 
s.send(data) 

データは、その後に等しくなります。同じ2.7で

b'\x01\xAF\x23' 

を用いて達成することができますので、多くの

data = '01AF23'.decode('hex') 
+0

おかげで、私はPython 2.7を使用しており、あなたの提案はトリックでした! – Adam

関連する問題