2012-01-18 45 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) 

那麼數據就等於:

b'\x01\xAF\x23' 

在2.7同樣可以用來完成:

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

非常感謝,我使用的Python 2.7,你的建議做到了! – Adam 2012-01-18 01:52:02

相關問題