我对使用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
最佳答案
您使用的是Python 2.7还是3.2?
在3.2中,您可以执行以下操作:
data = bytes.fromhex('01AF23')
s.send(data)
数据将等于:
b'\x01\xAF\x23'
在2.7中,可以通过以下方式完成此操作:
data = '01AF23'.decode('hex')