• 大小: 29.72MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-27
  • 语言: C/C++
  • 标签: C++  MFC  socket  

资源简介

计算机网络课程大作业。 使用socket编程。 实现P2P和群聊。 个性化MFC框架界面。 数据库存储方面有小的bug。 本软件用VS2010/2013开发,如遇版本问题可尝试修改“属性->常规->平台工具集”解决。

资源截图

代码片段和文件信息

// ClientSocket.cpp : implementation file
//

#include “stdafx.h“
#include “MINET.h“
#include “ClientSocket.h“
#include “Header.h“
#include “Dlg_LIST.h“
#include “GROUPCHAT.h“
// CClientSocket

CClientSocket::CClientSocket()
:m_strUserName(_T(““))
{

}

CClientSocket::~CClientSocket()
{
}


void CClientSocket::OnReceive(int nErrorCode)
{
//首先接受head头
HEADER head ;
char* pHead = NULL;
pHead =  new char[sizeof(head)];
memset(pHead 0 sizeof(head));
Receive(pHead sizeof(head));

head.type =((LPHEADER)pHead)->type;
head.nContentLen = ((LPHEADER)pHead)->nContentLen;
delete pHead;
pHead = NULL;

char* pBuff = NULL;
pBuff = new char[head.nContentLen];
if(!pBuff)
{
AfxMessageBox(_T(“内存不足!“));
return;
}
memset(pBuff 0  sizeof(char)*head.nContentLen);
if(head.nContentLen!=Receive(pBuff head.nContentLen))
{
AfxMessageBox(_T(“收到数据有误!“));
delete pBuff;
return;
}
CString strText(pBuff);
switch(head.type)
{
case MSG_UPDATE: 
{
CString strText(pBuff);
theApp.DeleteNode(strText);
((Dlg_LIST*)(AfxGetApp()->GetMainWnd()))->UpdateUserInfo(strText);
}
break;
case MSG_SEND:

//显示接收到的消息
CString str(pBuff);
CompareList(str);
break;
}
case MSG_UPDATEOFFLINE:
   {
 //显示接收到的消息
  CString strText(pBuff);
  ((Dlg_LIST*)(AfxGetApp()->GetMainWnd()))->UpdateUserOffLineInfo(strText);
   }
case MSG_SQL:
   {
 //显示接收到的消息
 CString str(pBuff);
 ((Dlg_LIST*)(AfxGetApp()->GetMainWnd()))->UpdateNameSign(str);
 break;
    }
case MSG_UPDATEYOURSIGN:
   {
//显示接收到的消息
CString str(pBuff);
ShowYourSign(str);
break;
   }
default: break;
}

delete pBuff;
CSocket::OnReceive(nErrorCode);
}

BOOL CClientSocket::SendMSG(LPSTR lpBuff int nlen)
{
//生成协议头
HEADER head;
head.type = MSG_SEND;
head.nContentLen = nlen;

if(Send(&head sizeof(HEADER))==SOCKET_ERROR)
{
AfxMessageBox(_T(“发送错误!“));
return FALSE;
};
if(Send(lpBuff nlen)==SOCKET_ERROR)
{
AfxMessageBox(_T(“发送错误!“));
return FALSE;
};
return  TRUE;
}
BOOL CClientSocket::SendGETYourSign(LPSTR lpBuff int nlen)
{
//生成协议头
HEADER head;
head.type = MSG_UPDATEYOURSIGN;
head.nContentLen = nlen;

if (Send(&head sizeof(HEADER)) == SOCKET_ERROR)
{
AfxMessageBox(_T(“发送错误!“));
return FALSE;
};
if (Send(lpBuff nlen) == SOCKET_ERROR)
{
AfxMessageBox(_T(“发送错误!“));
return FALSE;
};
return  TRUE;
}

BOOL CClientSocket::LogoIn(LPSTR lpBuff int nlen)
{
HEADER _head;
_head.type = MSG_LOGOIN;
_head.nContentLen = nlen;
int _nSnd= 0;
if((_nSnd = Send((char*)&_head sizeof(_head)))==SOCKET_ERROR)
return false;
if((_nSnd = Send(lpBuff nlen))==SOCKET_ERROR)
return false;

return TRUE;
}

CString CClientSocket::FindMSGName(CString str)
{
CString strTmp strInfo_1;
int number;
int n = str.Find(‘#‘);
strTmp = str.Left(n);
strIn

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件     1349120  2015-01-14 23:26  可执行文件\NetChatServer.exe
     文件    11849216  2015-01-14 23:26  可执行文件\MINET.exe
     目录           0  2015-01-16 09:28  可执行文件\
     文件         339  2015-01-14 23:26  可执行文件\userSQL.txt
     目录           0  2015-03-08 23:04  MINET-客户端\
     目录           0  2015-03-08 23:04  MINET-客户端\MINET\
     文件        8016  2015-01-14 23:24  MINET-客户端\MINET\ClientSocket.cpp
     文件         601  2015-01-14 23:24  MINET-客户端\MINET\ClientSocket.h
     文件        4016  2015-01-14 23:24  MINET-客户端\MINET\Dlg_CHAT.cpp
     文件         888  2015-01-14 23:24  MINET-客户端\MINET\Dlg_CHAT.h
     文件        7284  2015-01-14 23:24  MINET-客户端\MINET\Dlg_LIST.cpp
     文件        1091  2015-01-14 23:24  MINET-客户端\MINET\Dlg_LIST.h
     文件        4174  2015-01-14 23:24  MINET-客户端\MINET\GROUPCHAT.cpp
     文件         868  2015-01-14 23:24  MINET-客户端\MINET\GROUPCHAT.h
     文件         763  2015-01-14 23:24  MINET-客户端\MINET\Header.h
     文件     3409424  2015-02-02 19:54  MINET-客户端\MINET\MINET.APS
     文件        4463  2015-01-14 23:24  MINET-客户端\MINET\MINET.cpp
     文件        1022  2015-01-14 23:24  MINET-客户端\MINET\MINET.h
     文件       18042  2015-01-14 23:24  MINET-客户端\MINET\MINET.rc
     文件        7107  2015-02-16 22:49  MINET-客户端\MINET\MINET.vcxproj
     文件        4309  2015-01-14 23:24  MINET-客户端\MINET\MINET.vcxproj.filters
     文件         143  2015-01-14 23:24  MINET-客户端\MINET\MINET.vcxproj.user
     文件        3737  2015-01-14 23:24  MINET-客户端\MINET\MINETDlg.cpp
     文件         860  2015-01-14 23:24  MINET-客户端\MINET\MINETDlg.h
     文件       17656  2015-01-14 23:24  MINET-客户端\MINET\RCa04028
     文件       17980  2015-02-02 19:54  MINET-客户端\MINET\RCa05872
     文件       14944  2015-01-14 23:24  MINET-客户端\MINET\RCa06968
     文件       14944  2015-01-14 23:24  MINET-客户端\MINET\RCb06968
     文件       14944  2015-01-14 23:24  MINET-客户端\MINET\RCc06968
     文件        2502  2015-01-14 23:24  MINET-客户端\MINET\ReadMe.txt
     文件        2529  2015-01-14 23:24  MINET-客户端\MINET\SETTING.cpp
............此处省略67个文件信息

评论

共有 条评论