IC(CClientSocket, CSocket)。
为该类加入成员变量,如表11-7 所示。
表11-7 CClientSocket 类成员变量及其说明
成员变量 说明
CChatServerDoc* m_pDoc 关联的文档类,很多数据处理工作在文档类中完成
CSocketFile* m_pFile CArchive 与CSocket 的联系桥梁,通过它来创建CArchive 类
CArchive* m_pArchiveIn 用于数据接收
CArchive* m_pArchiveOut 用于数据发送
int m_nMsgCount 信息的数目
为该类加入成员函数,如表11-8 所示。
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·298·
表11-8 CClientSocket 类成员函数及其说明
成员函数 说明
CClientSocket(CChatServerDoc* m_pDoc) 构造函数
void Init() 对成员变量进行初始化
void SendMsg(CMsg* pMsg) 发送消息
void ReceiveMsg(CMsg* pMsg) 接收消息
virtual void OnReceive(int nErrorCode) 重载CSocket 的OnReceive()函数
在创建的过程中用到了类CMsg 和类CChatServerDoc,因此在文件“ClientSocket.h”的
开始声明两个类。
class CMsg;
class CChatServerDoc;
在“ClientSocket.cpp”文件的开始要把两个头文件包含进来。代码如下:
#include "msg.h"
#include "ChatServerDoc.h"
最后为各函数编写代码。构造函数代码如下:
CClientSocket::CClientSocket(CChatServerDoc* pDoc)
{
m_pDoc = pDoc;
m_nMsgCount = 0;
m_pFile = NULL;
m_pArchiveIn = NULL;
m_pArchiveOut = NULL;
}
析构函数代码如下:
CClientSocket::~CClientSocket()
{
if (m_pArchiveOut != NULL)
delete m_pArchiveOut;
if (m_pArchiveIn != NULL)
delete m_pArchiveIn;
if (m_pFile != NULL)
delete m_pFile;
}
初始化函数Init()代码如下:
void CClientSocket::Init()
{