字体
第(1/7)页
关灯
   存书签 书架管理 返回目录
    明

    CListeningSocket* m_pSocket jiān tīng客户连接

    CStringList m_msgList 存放所有聊天信息的链表

    CPtrList m_connectionList 存放所有客户端连接的链表

    BOOL bIsNewChatter 表示新加入的用户其用户名是否已有人使用

    CString m_ChattersList 保存当前正在连接的所有用户名

    为CChatServerDoc 类添加成员函数,如表11-10 所示。

    枫叶文学网www.fywxw.com

    第11 章 网络编程

    ·301·

    表11-10 CChatServerDoc 类成员函数及其说明

    成员函数 说明

    void ProcessAccept() 当jiān tīng到客户端连接时调用此函数进行处理

    void ProcessReceive(CClientSocket* pSocket) 当接收到信息时调用此函数,进行信息接收等cāo作

    CMsg* ReadMsg(CClientSocket* pSocket) 接收信息

    void SendMsg(CClientSocket* pSocket, CMsg* pMsg) 发送信息

    void SendToAllClients(int nCode) 给各客户端发送消息

    CMsg* AssembleMsg(CClientSocket* pSocket, int

    nCode)

    封装消息,nCode 指定消息类型

    void SendForNewccomr(CMsg* pMsg) 给各客户端发送消息,告知有新用户加入

    void UpdateMessageView(LPCTSTR lpszMessage) 更新服务器聊天信息视图

    void UpdateChattersListView(CString sNcom ,

    CClientSocket* pSocket)

    更新服务器用户列表视图

    BOOL IsUsedNcom(CString sNickNcom) 检查新登录的用户其用户名是否已被使用

    void CloseSocket(CClientSocket* pSocket) 关闭连接

    void DeleteChatter(CMsg* pMsg) 删除用户

    virtual void DeleteContents() 当程序退出时做一些关闭、删除处理

    下面为各函数编写代码。首先在构造函数中将各成员变量初始化,代码如下:

    CChatServerDoc::CChatServerDoc()

    {

    // TODO: add one-tcom construction code here

    m_pSocket = NULL;

    m_msgList.RemoveAll();

    m_connectionList.RemoveAll();

    bIsNewChatter = TRUE;

    m_ChattersList = "";


上一章 目录 下一页