一、建立连接
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.settimeout(30)
self.sock.connect((ip, port))
二、报文定义
topiclength = "%08x" % len(topic)(长度占位4个字节,不足的以0补充)
packlength = "%08x" % packlength(长度占位4个字节,不足的以0补充)
头定义:固定头以0x24填充,版本号以0x00、0x05填充,内容长度(4个字节),主题长度(4个字节),保留字段(5个字节),整个头占用16个字节
header = b'x24x00x05' + bytes.fromhex(packlength) + bytes.fromhex(topiclength) + b'x00x00x00x00x00' (头可以根据自己定义的字节数进行修改)
paylod = header + topic.encode() + data
三、报文发送
res = self.sock.send(paylod)