字体
第(3/7)页
关灯
   存书签 书架管理 返回目录
g()函数编写如下代码:

    void CChatClientDoc::SendMsg(CString& strText, int mCode, BOOL bSendHandle)

    {

    if (m_pArchiveOut != NULL)

    {

    CMsg msg;

    msg.code = mCode;

    msg.m_strText = (bSendHandle ? m_strNcom + _T(": ") + strText : strText);

    TRY

    {

    msg.Serialize(*m_pArchiveOut);

    m_pArchiveOut->Flush();

    }

    CATCH(CFileException, e)

    {

    m_pArchiveOut->Abort();

    delete m_pArchiveOut;

    m_pArchiveOut = NULL;

    CString strTemp;

    strTemp.Format("发送失败");

    DisplayMsg(strTemp);

    }

    END_CATCH

    }

    }

    为ProcessReceive()函数编写如下代码:

    void CChatClientDoc::ProcessReceive()

    {

    do

    {

    ReceiveMsg();

    if (m_pSocket == NULL)

    return;

    枫叶文学网www.fywxw.com

    Visual C++ 6.0 程序设计从入门到精通

    ·318·

    }

    while(!m_pArchiveIn->IsBufferEmpty());

    }

    为ReceiveMsg()函数编写如下代码:

    void CChatClientDoc::ReceiveMsg()

    {

    CMsg msg;

    TRY

    {

    msg.Serialize(*m_pArchiveIn);

    if(msg.code == SENDING_CHATTERS_LIST)

    {

    //更新用户列表

    UpdateChattersList(&msg);

    return;

    }

    if(msg.code == USED_NAME)

    {

    //如果是用户名已存在信息则关闭连接,退出

    AfxMessageBox(msg.m_strText);

    msg.m_bClose = TRUE;

    OnDisconnect();

    return;

    }

    //显示消息

    DisplayMsg(msg.m_strText);

    }

    CATCH(CFileException, e)

    {


上一页 目录 下一页