字体
第(4/6)页
关灯
   存书签 书架管理 返回目录
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()

    {

   
上一页 目录 下一页