package packet import "errors" var ( // ErrWrongPacketType represents a wrong packet type. ErrWrongPacketType = errors.New("wrong packet type") // ErrPacketSizeExceed represents a wrong packet size. ErrPacketSizeExceed = errors.New("packet size exceed") ) type ( // IPacket 数据帧 IPacket interface { GetHeader() any // 数据帧头部 Header GetLen() uint64 // 数据帧长度 8bytes,根据实际情况进行转换 GetBody() []byte // 数据 Body } // Packer 数据帧 封包/解包 Packer interface { // Pack 封包,将原始数据构造为二进制流数据帧 Pack(header any, data []byte) ([]byte, error) // Unpack 解包 Unpack(data []byte) ([]IPacket, error) } // PackerBuilder Packer构建器 PackerBuilder func() Packer )