• 大小: 86KB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2021-05-18
  • 语言: C/C++
  • 标签: MFC  Socket  ODBC  数据库  

资源简介

在VS2012下用MFC写成的简易网络聊天室程序,包含的知识点有ODBC连接MySql数据库、CSocket类的运用等,对于mfc新手是个不错的学习资源(如果项目无法在VS2012下运行,有可能是因为VS版本不匹配(由于之前是先用VS2013写的再转到VS2012),请对着项目右键,然后点属性,找到配置属性,将常规中的平台工具集选择为Visual Studio 2012 (v110),应用即可)

资源截图

代码片段和文件信息

#include “stdafx.h“
#include “ClientSocket.h“


CClientSocket::CClientSocket()
{
}


CClientSocket::~CClientSocket()
{
}

//接收服务器消息的回调函数
void CClientSocket::OnReceive(int nErrorCode)
{
// TODO:  在此添加专用代码和/或调用基类
char* pData = NULL;
pData = new char[1024];
memset(pData 0 sizeof(char)* 1024);
UCHAR leng = 0;
CString str;
leng = Receive(pData 1024 0);
str = pData;




//如果服务器通知更新聊天室列表
if (-1 != strUpdate(str))
{
((ClineClientDlg *)theApp.GetMainWnd())->UpdateUsers(str strUpdate(str));
}
//否则就更新聊天窗口内容
else
{
//更新数据库中的聊天记录
try
{
((ClineClientDlg *)theApp.GetMainWnd())->updateDatabase(str);
}
catch(CException* e )
{
e->ReportError();
//delete(e);
}
CString strOld;
((ClineClientDlg *)theApp.GetMainWnd())->GetDlgItemText(IDC_EDIT_RECIEVEMSG strOld);
str = strOld + “\r\n“ + str;
// 在编辑框中显示接收到的数据
((ClineClientDlg *)theApp.GetMainWnd())->SetDlgItemTextW(IDC_EDIT_RECIEVEMSG str);
}
delete pData;
pData = NULL;
CSocket::OnReceive(nErrorCode);
}

//向服务器发送消息
bool CClientSocket::SendMSG(LPSTR lpBuff int nlen)
{
//生成协议头
if (Send(lpBuff nlen) == SOCKET_ERROR)
{
AfxMessageBox(_T(“发送错误!“));
return FALSE;
}
return  TRUE;
}


int CClientSocket::strUpdate(CString str)
{
return str.Find(_T(“MUPDATEUSERLIST“));
}

评论

共有 条评论