毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

VC++聊天室的实现

更新时间:2010-3-23:  来源:毕业论文

VC++聊天室的实现
1. 流程。
a. 实现软件,Visual C++ 6.0.
使用CSocket实现消息的传递。
ClientDlg                                     ServerDlg
Before send loading infor ,Connection!and do nothing before receive success infor.
Connection Request ImformationSend(LoadInformation name+psw)OnReceive();
CptrList.AddTail(ClientSocket);//创建连接
Bool Isexist();
SuccessInfor;
FailInfro
DeleteConnectiong
1.OnReceive();
a.Analyse information’s type;
b.Include all TYPE information Handle.
2.SendMessage();
A.BuildDifferent msg;
problem:
1. 本打算用 CSocketFile 和 CArchive 来传递消息,用这两个对象几可以实现传递对象的可能。但是由于在实现过程中,接受方的BUFFER中无消息,一直没检查出错误。所以更改了传递消息的方式。
直接传递CString 对象,再在这个里面来构造消息机制。
LOAD MSG:SYSTEMMSG_LOAD_NAME_PASSWORD.
SUCCESSLOAD: SUCCESS_CALLNAME(it’s user’s net name)
SB online:SYSTEMMSG:CALLNAME +“进入了聊天室”;
All online user’s name:USERSNAME_CALLNAME1_CALLNAME2_......
Chatmsg: NOMALMSG_WHO_TOWHO_MSGITEM;
(WHO:who send      TOWHO:send to who      MSGITEM:what “who ” said) 

USERLEFT MSG:  "SYSTEMMSG_CLOSE_"+this->m_userInforDlg->m_userName+"_" ;
2.如果用这种方式传递消息有一个风险,假如聊天消息是与“SYSTEMMSG _开头的怎么办?”,如果知道这种消息体制后完全有可能通过传递消息就可以控制你服务器。
解决方案:使用 CSocketFile 序列化后再传递。
Construction MSG half-baked Code :
CString CServerDlg::BuildUserListMsg()
{
 CString a;
 a="USERLIST";
 for(int i=0;i<m_listUser.GetCount();i++)  //Include all user’s call name!
 {
  CString b;
  m_listUser.GetText(i,b);
  a=a+"_"+b;
 }
 return a;
}

CString CClientDlg::BuildNomalMsg(CString& preString)// CHATTING MSG
{
 CString a;
     a="NOMALMSG_"+m_userInforDlg->m_userName+"_"+this->m_comboWho+"_"+preString;
  return a;
}

CString CClientDlg::BulidLoadMsg()             //load msg
{
 CString a;
 a="SYSTEMMSG_LOAD_"+m_userInforDlg->m_userName+"_"+m_loadDlg->m_password;
 return a;
}

CString CClientDlg::BulidChangeMsg()
{
 CString a;
 a="SYSTEMMSG_CHANGE_"+m_nameCopy+"_"+this->m_userInforDlg->m_userName;
 return a;
}

CString CClientDlg::BulidCancelMsg()
{
 CString a="SYSTEMMSG_CLOSE_"+this->m_userInforDlg->m_userName+"_";918

[1] [2] 下一页

VC++聊天室的实现下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©lwfree.cn 六维论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。