import socket
import re
def convert_stringhex_to_bytes(stringhex):
"""将以字符串格式显示的16进制数据转换成适用于socket发送的数据格式
如:'85162a6400efbe800101000000' =>
b'\x85\x16\x2a\x64\x00\xef\xbe\x80\x01\x01\x00\x00\x00'
"""
pattern = re.compile('.{2}')
string = 'b\'\\x' + '\\x'.join(pattern.findall(stringhex)) + '\''
return eval(string)
ip = '192.168.1.1' # 接收主机的IP地址
port = 10000 # 接收主机的端口
data = '85162a6400efbe800101000000' # 准备发送的数据
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto(convert_stringhex_to_bytes(data), (ip, port))