基于C++的即时通信软件设计

// MySocket.cpp : implementation file
//

#include "stdafx.h"
#include "LanMessage.h"
#include "MySocket.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/
// CMySocket

CMySocket::CMySocket()
{
}

CMySocket::~CMySocket()
{
}
void CMySocket::OnReceive(int n)//消息响应处理
{
	if(dlg->online)//在线才进行响应
	{
    mes trans;
	if(!Receive((void*)&trans,sizeof(trans))){return;}//获取服务器消息
	CString txt1=trans.from,txt2="在线用户";
	if(txt1==txt2)//如果是"在线客户"消息
	{
	CString show;
	show.Format("当前用户:%s
%s:%s",dlg->me,trans.from,trans.content);
	dlg->m_online=show;
    dlg->UpdateData(false);//刷新主界面
	}
	else if(trans.from[0]==_)//如果是文件消息
	{
		CStdioFile put;
		CString name=trans.from;
		name=name.Mid(1);//获取文件名
		if(!put.Open(name,CFile::modeCreate|CFile::modeWrite))//将文件内容存储
		{	AfxMessageBox("创建文件失败!");return;}
		else put.WriteString(trans.content);
		put.Close();
	}
	else {//如果是普通消息
	CString show;
	show.Format("From %s:%s
",trans.from,trans.content);
	dlg->m_show+=show;
    dlg->UpdateData(false);//刷新主界面
	}
	}
}
// Do not edit the following lines, which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CMySocket, CSocket)
	//{
         
  {AFX_MSG_MAP(CMySocket)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif	// 0

/
// CMySocket member functions
经验分享 程序员 微信小程序 职场和发展