'How can I send anything other than strings through Python sock.send()
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
Solution 1:[1]
You can send the hex values by first forming a list of hex values like below:
hex_list = [0x00, 0x00, 0x00, 0x01, 0x00, 0x0c, 0x00]
then, send them as bytes:
s.sendto(bytes(hex_list), addr1)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | RiveN |
