资源简介
这是一个MFC聊天室程序的一部分,是服务器端程序,使用VS2010+CSocket编写。启动服务器端之后,可以实现和客户端端登陆连接,连接之后客户端之间可以收发消息。如果同时打开多个客户端程序并登陆连接服务器端,那么此时这几个客户端程序可以正常聊天。因为程序文件较大,客户端和服务器端只能分开上传,请大家谅解。客户端程序请见我的另一个资源。
代码片段和文件信息
#include “stdafx.h“
#include “DefPersonal.h“
#include “CPublic.h“
#include “ServerDlg.h“
/***************CListenSocket**********************/
CListenSocket::CListenSocket()
{
}
CListenSocket::~CListenSocket()
{
}
BOOL CListenSocket::Init(UINT portCServerDlg * dlg)
{
m_uPort = port;
m_dlg = dlg;
if (Create(m_uPort)==FALSE)
{
AfxMessageBox(_T(“Server Socket Create Error“));
return FALSE;
}
if(this->Listen(MaxPort)==FALSE)
{
AfxMessageBox(_T(“Server Listen Error“));
return FALSE;
}
m_dlg->SetDlgItemText(IDC_EDIT1_T(“服务器处于监听状态!“));
return TRUE;
}
void CListenSocket::OnAccept(int nErrorCode) //如果有服务器请求连接会自动调用该函数
{
m_dlg->ServerAccept();
CSocket::OnAccept(nErrorCode);
}
/**************************************************/
/***************CCommSocket************************/
CCommSocket::CCommSocket(CPtrList* list)
{
m_pList = list;
}
CCommSocket::~CCommSocket()
{
}
BOOL CCommSocket::Init(CServerDlg * dlg)
{
m_cdlg = dlg;
return TRUE;
}
void CCommSocket::OnReceive(int nErrorCode)
{
int nlen = sizeof HEADER;
char *pHead = NULL;
pHead = new char[nlen];
memset(pHead0sizeof(char)*nlen);
if(Receive(pHeadnlen)!=nlen)
{
AfxMessageBox(_T(“接收数据有误!“));
delete pHead;
return;
}
//HEADER head;
//head.nContentLength = ((LPHEADER)pHead)->nContentLength;
//head.cmd = ((LPHEADER)pHead)->cmd;
//USES_CONVERSION;
//CString s = A2T(((LPHEADER)pHead)->msg);
//AfxMessageBox(s);
POSITION ps = m_pList->GetHeadPosition();
while (ps!=NULL)
{
CCommSocket* pTemp = (CCommSocket*)m_pList->GetNext(ps);
pTemp->Send(pHeadnlen);
}
delete pHead;
CSocket::OnReceive(nErrorCode);
}
/**************************************************/
///**************************************************/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 162816 2014-09-09 11:18 Server\Debug\Server.exe
文件 1141332 2014-09-09 11:18 Server\Debug\Server.ilk
文件 5819392 2014-09-09 11:18 Server\Debug\Server.pdb
文件 96337920 2014-09-09 11:23 Server\ipch\server-47516096\server-2e75de63.ipch
文件 229 2014-05-13 20:23 Server\Server\CPublic.h
文件 3098 2014-09-09 11:18 Server\Server\Debug\cl.command.1.tlog
文件 91318 2014-09-09 11:18 Server\Server\Debug\CL.read.1.tlog
文件 2624 2014-09-09 11:18 Server\Server\Debug\CL.write.1.tlog
文件 34679 2014-09-09 11:18 Server\Server\Debug\DefPersonal.obj
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2 2014-09-09 11:18 Server\Server\Debug\li
文件 2526 2014-09-09 11:18 Server\Server\Debug\li
文件 8048 2014-09-09 11:18 Server\Server\Debug\li
文件 1310 2014-09-09 11:18 Server\Server\Debug\li
文件 766 2014-09-09 11:18 Server\Server\Debug\mt.command.1.tlog
文件 552 2014-09-09 11:18 Server\Server\Debug\mt.read.1.tlog
............此处省略48个文件信息
评论
共有 条评论