【物模型学习】TCP协议报文自定义

一、建立连接
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'\x24\x00\x05' + bytes.fromhex(packlength) + bytes.fromhex(topiclength) + b'\x00\x00\x00\x00\x00' (头可以根据自己定义的字节数进行修改)
paylod = header + topic.encode() + data

三、报文发送
res = self.sock.send(paylod)
posted @ 2020-11-19 15:05  小米渣渣  阅读(658)  评论(0编辑  收藏  举报