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