⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 g_netpacket.h

📁 PC网络游戏的编程
💻 H
字号:
// g_NetPacket.h: interface for the CG_NetPacket class.

#ifndef __CG_NET_PACKET_H__
#define __CG_NET_PACKET_H__

#include "g_cmdpacket.h"

const int NET_PACKET_HEAD_SIZE = 5;
const int MAX_NET_PACKET_SIZE  = MAX_CMD_PACKET_SIZE + NET_PACKET_HEAD_SIZE; 

/*
net packet head struct
{
	4  bit	0101 
	1  bit	reserved
	1  bit  flag system 
	1  bit	flag compress 
	1  bit	flag encrypt
	16 bit  seq
	16 bit  data size
}
*/

const char PROTOCOL_FLAG = 5; // 0101
const char FLAG_ENCRYPT  = 1;
const char FLAG_COMPRESS = 2;
const char FLAG_SYSTEM   = 4;

const short SYS_PACKET_SET_SEED   = 1;
const short SYS_PACKET_KEEP_ALIVE = 2;
const short SYS_PACKET_ALIVE_ACK  = 3;

const unsigned short MAX_NET_PACKET_SEQ = 65000;

class CG_NetPacket : public CG_CmdPacket  
{
public:
	CG_NetPacket();
	virtual ~CG_NetPacket();

	void AddCmdPacket(CG_CmdPacket *packet);
	void AttachCmdPacket(CG_CmdPacket *packet);
	bool Uncompress();
	bool Compress();
	bool IsCompress();
	bool IsEncrypt();
	bool IsSysPacket();
	void SetSysPacket();
	void Decrypt(char *seed,int len);
	void Encrypt(char *seed,int len);
	void SetSeq(unsigned short seq);
	
	int  GetHeadSize();
	int  GetTotalSize();
	int  BeginRead(char *p,int len);

	char			 m_buffer[MAX_NET_PACKET_SIZE];
	int				 m_totalSize;
	char			*m_pktFlag;
	unsigned short  *m_pktSeq;
	unsigned short  *m_pktDataSize;
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -