ual C++ 6.0 程序设计从入门到精通
·316·
为“断开”菜单项添加响应函数,代码如下:
void CChatClientDoc::OnDisconnect()
{
// TODO: Add your command handler code here
DeleteContents();
bIsConnected = FALSE;
}
当断开后,应当使“断开”菜单项无效,为消息UPDATA_COMMAND_UI 添加如下响
应函数:
void CChatClientDoc::OnUpdateDisconnect(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(bIsConnected);
}
为ConnectSocket()函数编写如下代码:
BOOL CChatClientDoc::ConnectSocket(LPCTSTR lpszHandle, LPCTSTR lpszAddress, int nPort)
{
m_strNcom = lpszHandle;
m_pSocket = new CChatSocket(this);
//创建socket 失败
if (!m_pSocket->Create())
{
delete m_pSocket;
m_pSocket = NULL;
AfxMessageBox("创建socket 失败!");
return FALSE;
}
//连接失败
if(!m_pSocket->Connect(lpszAddress, nPort))
{
delete m_pSocket;
m_pSocket = NULL;
return FALSE;
}
m_pFile = new CSocketFile(m_pSocket);
//用于数据接收和发送
m_pArchiveIn = new CArchive(m_pFile,CArchive::load);
m_pArchiveOut = new CArchive(m_pFile,CArchive::store);
//将用户名发送给服务器
SendMsg(m_strNcom, SENDING_NICKNAME, false);
枫叶文学网www.fywxw.com
第11 章 网络编程
·317·
CString strTemp;
strTemp.Format("进入聊天室");
//作为普通消息发送给服务器
SendMsg(strTemp, NORMAL_MESSAGE, true);
return TRUE;
}
为SendMs