数及其说明
成员函数 说明
BOOL ConnectSocket(LPCTSTR lpszHandle,
LPCTSTR lpszAddress, int nPort)
连接服务器,3 个参数依次是用户名、服务器地址
和端口号
枫叶文学网www.fywxw.com
第11 章 网络编程
·315·
续表
成员函数 说明
void ProcessReceive() 当接收到信息时调用此函数,进行信息接收等cāo作
void SendMsg(CString& strText, int mCode, BOOL
bSendNcom)
发送信息,3 个参数分别表示信息内容、信息种类
和是否发送用户名
void ReceiveMsg() 接收信息
void DisplayMsg(LPCTSTR lpszText) 显示信息
void UpdateChattersList(CMsg* pMsg) 更新用户列表
virtual void DeleteContents() 断开时所作的工作
下面开始为各函数编写代码。
首先在构造函数中将各成员变量初始化,代码如下:
CChatClientDoc::CChatClientDoc()
{
// TODO: add one-tcom construction code here
bIsConnected = FALSE;
m_pSocket = NULL;
m_pFile = NULL;
m_pArchiveOut = NULL;
m_pArchiveIn = NULL;
}
接着为“连接”菜单项编写响应函数,代码如下:
void CChatClientDoc::OnConnect()
{
// TODO: Add your command handler code here
CLogDlg dlg;
if(dlg.DoModal() == IDOK)
{
if(ConnectSocket(dlg.m_Ncom, dlg.m_Server, dlg.m_Port))
bIsConnected = TRUE;
else
AfxMessageBox("连接服务器失败!");
}
}
当连接后,应该使“连接”菜单项无效,为消息UPDATA_COMMAND_UI 添加响应函
数如下:
void CChatClientDoc::OnUpdateConnect(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(!bIsConnected);
}
枫叶文学网www.fywxw.com
Vis