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

📄 chatpacket.cpp

📁 WInsock32的客户端哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
💻 CPP
字号:
// ChatPacket.cpp: implementation of the CChatPacket class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
//IMPLEMENT_DYNCREATE(CChatPacket, CObject)
IMPLEMENT_SERIAL(CChatPacket, CObject, 1 )


CChatPacket::CChatPacket()
{
	Init();

}

CChatPacket::~CChatPacket()
{
}

/*
 * 初始化
 */
void CChatPacket::Init(void)
{
	m_type = UNKNOWN;			//为知类型
	m_strMsg = _T("");			//清空
	m_pUserList = NULL;			//清空	
	m_time = CTime::GetCurrentTime();	
}

/*
 * 序列化
 */
void CChatPacket::Serialize(CArchive& ar)
{
	CObject::Serialize(ar);//调用基类的序列化函数

	if (ar.IsStoring())//发送数据
	{
		BYTE byType = m_type;
		ar << byType;					//包的类型
		ar << m_strMsg;					//消息
	
		long  lTime = m_time.GetTime();	//日期和时间
		ar << lTime;
	}else//接收数据
	{
		BYTE byType;			
		ar >> byType;	
		m_type = (PACKETTYPE)byType;	//包的类型
		ar >> m_strMsg;					//消息
		
		long lTime;
		ar >> lTime;					//日期和时间
		m_time = CTime((time_t)lTime);
	}

	m_UserInfo.Serialize(ar);			//序列化用户信息
	m_OfflineUserInfo.Serialize(ar);	//序列化离线用户信息

	if (m_type == USERLIST && NULL != m_pUserList)//序列化用户列表
	{
		m_pUserList->Serialize(ar);			
	}
}

⌨️ 快捷键说明

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