我非常擅长使用Python进行编程,但出于必要,我必须非常快速地将一些东西放在一起。
我试图通过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
答案 0 :(得分:14)
您使用的是Python 2.7还是3.2?
在3.2中你可以做到:
data = bytes.fromhex('01AF23')
s.send(data)
数据将等于:
b'\x01\xAF\x23'
在2.7中,同样可以通过以下方式实现:
data = '01AF23'.decode('hex')