99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

C++中組解數據包(序列化反序列化方式)-創新互聯

class ExBodyHead
{public:
	quint8 m_no; 
	quint8 m_id; 
	quint16 m_length; 
	quint32 m_timestamp; 
	quint16 m_spare; 
	quint16 m_secondid; 

	ExBodyHead()
	{m_no = 0;        m_id = 0;    m_length = 0;
		m_timestamp = 0; m_spare = 0; m_secondid = 0;
	}
	ExBodyHead(quint8 _no, quint8 _id, quint16 _length, quint16 _timestamp, quint16 _spare, quint16 _secondid)
		: m_no(_no), m_id(_id), m_length(_length), m_timestamp(_timestamp), m_spare(_spare), m_secondid(_secondid)
	{}

	friend QDataStream& operator<<(QDataStream& os, const ExBodyHead& data)
	{os<< data.m_no<< data.m_id<< data.m_length<< data.m_timestamp<< data.m_spare<< data.m_secondid;
		return os;
	}

	friend QDataStream& operator>>(QDataStream& is, ExBodyHead& data)
	{is >>data.m_no >>data.m_id >>data.m_length >>data.m_timestamp >>data.m_spare >>data.m_secondid;
		return is;
	}
};

//對數據流包頭組包
templateQByteArray PackProStruct(const T& data, bool bLittleEndian = false)
{QByteArray headBytes;
	QBuffer head_buffer(&headBytes);
	head_buffer.open(QIODevice::WriteOnly);
	QDataStream head_stream(&head_buffer);
	head_stream.setByteOrder(bLittleEndian ? QDataStream::LittleEndian : QDataStream::BigEndian);
	head_stream<< data;
	head_buffer.close();
	return headBytes;
}

//對數據流進行組包
templateQByteArray PackProStruct(const T& data, ExPckgHead pckgHead, bool bLittleEndian = false)
{QByteArray serial_array;
	QBuffer serial_buffer(&serial_array);
	serial_buffer.open(QIODevice::WriteOnly);
	QDataStream out_stream(&serial_buffer);
	out_stream.setByteOrder(bLittleEndian ? QDataStream::LittleEndian : QDataStream::BigEndian);
	out_stream<< data;
	serial_buffer.close();

	pckgHead.m_length = serial_array.size() + 16;
	ExPckgHead head(pckgHead);
	QByteArray headBytes;
	QBuffer head_buffer(&headBytes);
	head_buffer.open(QIODevice::WriteOnly);
	QDataStream head_stream(&head_buffer);
	head_stream.setByteOrder(bLittleEndian ? QDataStream::LittleEndian : QDataStream::BigEndian);
	head_stream<< head;
	head_buffer.close();
	serial_array.prepend(headBytes);

	return serial_array;
}

//對數據流進行解包
templatevoid UnPackProStruct(const QByteArray& msg, T& data, bool bLittleEndian = false)
{QByteArray deserial_array(msg);
	QBuffer deserial_buffer(&deserial_array);
	deserial_buffer.open(QIODevice::ReadOnly);
	QDataStream in_stream(&deserial_buffer);
	in_stream.setByteOrder(bLittleEndian ? QDataStream::LittleEndian : QDataStream::BigEndian);

	in_stream >>data;
	deserial_buffer.close();
}

//對字符流進行解包
templatevoid UnPackProStruct(const std::string& msg, T& data, bool bLittleEndian = false)
{QByteArray deserial_array(msg.data(), msg.size());
	QBuffer deserial_buffer(&deserial_array);
	deserial_buffer.open(QIODevice::ReadOnly);
	QDataStream in_stream(&deserial_buffer);
	in_stream.setByteOrder(bLittleEndian ? QDataStream::LittleEndian : QDataStream::BigEndian);

	in_stream >>data;
	deserial_buffer.close();
}
class timeSysInfo : public ExBodyHead //BCD碼
{public:
		quint8 m_second;    //秒
		quint8 m_minute;    //分
		quint8 m_hour;      //時
		quint8 m_timeZoneCorrect;  //時區修正
		quint8 m_day;     //日
		quint8 m_month;   //月
		quint8 m_lowByteYear;   //年的低字節
		quint8 m_highByteYear;  //年的高字節

		friend QDataStream& operator<< (QDataStream& os, const timeSysInfo& data)
		{	os<< data.m_no<< data.m_id<< data.m_length<< data.m_timestamp<< data.m_spare<< data.m_secondid
			<< data.m_second<< data.m_minute<< data.m_hour<< data.m_timeZoneCorrect<< data.m_day
			<< data.m_month<< data.m_lowByteYear<< data.m_highByteYear;

			return os;
		}
		friend QDataStream& operator >>(QDataStream& is, timeSysInfo& data)
		{	is >>data.m_no >>data.m_id >>data.m_length >>data.m_timestamp >>data.m_spare >>data.m_secondid
			   >>data.m_second >>data.m_minute >>data.m_hour >>data.m_timeZoneCorrect >>data.m_day
			   >>data.m_month >>data.m_lowByteYear >>data.m_highByteYear;

			return is;
		}
};
QByteArray datagram = EVDATA::PackProStruct(m_timeSysInfo, pckgHead);		

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

作為一家“創意+整合+營銷”的成都網站建設機構,我們在業內良好的客戶口碑。成都創新互聯公司提供從前期的網站品牌分析策劃、網站設計、成都做網站、網站建設、外貿營銷網站建設、創意表現、網頁制作、系統開發以及后續網站營銷運營等一系列服務,幫助企業打造創新的互聯網品牌經營模式與有效的網絡營銷方法,創造更大的價值。

文章名稱:C++中組解數據包(序列化反序列化方式)-創新互聯
當前地址:http://www.yijiale78.com/article34/idhpe.html

成都網站建設公司_創新互聯,為您提供自適應網站網站設計營銷型網站建設網站改版軟件開發用戶體驗

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設