字体
第(6/7)页
关灯
   存书签 书架管理 返回目录
tView, pView);

    if (pChatView != NULL)

    枫叶文学网www.fywxw.com

    第11 章 网络编程

    ·307·

    pChatView->ShowMessage(lpszMessage);

    }

    }

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

    void CChatServerDoc::UpdateChattersListView(CString sNcom , CClientSocket* pSocket)

    {

    CString sIPAddress;

    UINT iPort;

    //得到IP 地址和端口号

    pSocket->GetPeerNcom(sIPAddress , iPort);

    for(POSITION pos=GetFirstViewPosition();pos!=NULL;)

    {

    CView* pView = GetNextView(pos);

    CChattersListView* pChattersListView = DYNAMIC_DOWNCAST(CChattersListView, pView);

    //更新用户列表

    if (pChattersListView != NULL)

    pChattersListView->AddChatter(sNcom , sIPAddress , iPort);

    }

    }

    为函数CloseSocket()添加如下代码:

    void CChatServerDoc::CloseSocket(CClientSocket* pSocket)

    {

    //关闭连接

    pSocket->Close();

    POSITION pos,temp;

    for(pos = m_connectionList.GetHeadPosition(); pos != NULL;)

    {

    temp = pos;

    CClientSocket* pSock = (CClientSocket*)m_connectionList.GetNext(pos);

    //将此socket 从连接链表中删除

    if (pSock == pSocket)

    {

    m_connectionList.RemoveAt(temp);

    break;

    }

    }

    delete pSocket;

    //如果没有连接则清空连接链表

    if(m_connectionList.GetCount() == 0)

    m_msgList.RemoveAll();

    枫叶文学网www.fywxw.com

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

    ·308·

    }

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

    void CChatServerDoc::De
上一页 目录 下一页