I'm very very new to programming in Python, but out of necessity I had to hack something together very quick.
I am trying to send some data over UDP, and I have everything working except for the fact that when I do socket.send(), I have to enter the data in string form. Here is my program so you can see what I am doing:
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()
How could I get it so that I can do something in hexadecimal like s.send(ff:23:25:a1) for example, so that when I look at the data portion of the packet in Wireshark, I see ff:23:25:a1
解决方案
Are you using Python 2.7 or 3.2?
In 3.2 you could do:
data = bytes.fromhex('01AF23')
s.send(data)
Data would then be equal to:
b'\x01\xAF\x23'
In 2.7 the same could be accomplished with:
data = '01AF23'.decode('hex')