版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络编程技术课程设计报告题目名称聊天软件的开发 课程名称网络编程技术课程设计 学生姓名学号指导教师摘要,即双方即时通信的过程中必须通议的基础上,聊天过程中消息的发送必须遵守某一种约定,这种约定规定了“进入聊室”、“发送聊天信息”和“离开聊天室”数据传输格式,中转者(服务器)通过接收客户端不同的数据格式来进行判断消息发送者欲进行的操作,然关键词:VisualC++,客户端-服务器(C/S)结构,简单聊天软件由客户端和服务器两部分构成,服务器充当“中的消息首先发给服务器,服务器再根据需要将它序一般采用互连网中继聊天协议,即双方即时通”,”发送聊天信息”和”离开聊天室”数据传通过接收客户端不同的数据格式来进行判断消息发送进行处理后再进行转发,服务器根据接收到的不1.采用客户端——服务器(C/S)结构,聊天室软件由客户端和服务器两部SelfRoom)和客户端(SelfChat)。管理当有发来表也(一)服务器(二)客户端sSockets听)和CServerSocket(为每个加入聊天室的客户端生成一个相应的对象与之个基于CSocket的套接字类CClientSocket(用于连接服务器通信),和服务器一样要添加一个C++结构体5.某个成员(客户端)要发送聊天消息时,在发送信息文本框中编辑文Et“管理员”文本框“端口”文本框“聊天室动态”只读文“用户在线”列表框“开启”按钮“关闭”按钮“退出”按钮“您的昵称”文本框“端口”文本框“在线好友”列表框“聊天”只读文本框“发送”信息文本框“发送”按钮“进入”按钮“离开”按钮“退出”按钮(一)流程运行框架消息是t是AGE否tupe=LOGIN_IO否是是幕上结束是(二)服务端始UpdateData刷新界建套接字IPIP);获取管理员配置的IPnFildP否sIP.IsEmpty()是否IP是否是否否是信息是l("聊天室开启成功!\r\n");//记录管理员名是n无人加入聊天,因此在线用户束charcharbuff[sizeof(Header)];memset(buff,0,sizeof(buff));Receive(buff,sizeof(buff的头部并定义Header*header=(Header*)buff1;intlength=header-e否是charbuff[1000];memset(buff,0,sizeof(b根据要求,生成通知信息/\r\n";p_Edit->ReplaceSel(strTemp);m_strName=bu;head_history.type=SEND_Mm_dlgServer->m_history+=m_strNameCClientSocket*curr=NULL;POSITIONpos=clist-否pos!=NULL判断表头是是curr=(CClientSocket*)clist-Curr->m_strName==m_strName否是curr->Send((char*)&head_history,sizeof(Header));curr->Send((char*)&head,sizeof(Header));curr-m_dlgServer->UpdateUser(this);户列表否type==SEND_MESSAGE;否是否否是否向聊天室内所有成员转发是curr=(CClientSocket*)clist->GetNext(pos);curr->Send((char*)header,sizeof(Header));curr-结束AppmstrpSocketNULL否是否是tLen否是ckPOSITIONpos=clist->GetHEeadPosition();否是否是否是显示成员离开信息及时间CSocket::OnClose(nErrorCd);语句p_Edit->ReplaceSel(strTemp);Headerhead;head.type=SEND_MESSAGE;head.len=strTemp.GetLength();CClientSocket*(三)客户端是是是lFi否是否是否否否否”按钮事件流程图如图5.客户端的“离开”函数流程图如图.具体代码实现{dnFildnFildlientSocketOnReceiveintnErrorCode{SelfRoomDlgUpdateUserCClientSocketpSocket{erinfouserinfo)"+"&";{ocketpSockNULLonwhilepos=NULL){userinfopSockmstrName&");}erheadnwhilepo=NULL){pSock->Send((char*)&head,sizeof(Header));}}}lientSocketOnCloseintnErrorCode{lfChatDlgOnButton{dddnFildnFildnFildnFild;lfChatDlgOnButtonlientSocketOnReceiveintnErrorCode{OOLCSelfChatDlgGetMsgFromRoom{memsetbuffsizeofbuff));mpSocketReceive(buff,sizeof(buff));户端“离开”按钮的事件过程代lfChatDlgOnButtonmpSocket>Close();t入后,自己的聊天框内会有欢迎信息,其他成员的户端的聊天编辑框中输入要发的消息,点击“发送”,即可将消息发送出去,消息会在自己、其他成员的聊天框以及聊天”,即可离开聊天室,自消息,离开的提示信息会显示在其他成员的聊天用户都离开聊天室时,可点击服务器做了两周的课程设计,我个人觉得本次收获是很大的。(做了两周的课程设计,我个人觉得本次收获是很大的。(自己写)[3]郑阿奇.VisualC++网络编程教程[M].北京:电子工业出版社,2013.6.[5]宋春花,吕进来.C++程序设计[M].北京:人民邮电出版社,.致谢两周的网络编程课程设计很快就要变成了过去式了,在这段时间里,我收获了很多,很感谢学校提供了这么一次实战的机会让我们更好地学习知识。在此,我非常感谢的是我们的指导老师***老师。他是一位认真负责的好老师,对我们的爱都表现在和我们玩笑和打闹中。但其实我们是知道的,他真的是一位很好的老师。在得知是我们的知道老师以后,他在第一时间询问了我们的课表,准备为我们安排开会的时间。是一个没课的早上,他让我们到了办公咨询他、需要资料的可以请教他等等,我们真的是被老师的尽职尽责所动容。他还及时为我们解决问题,让我们在自我编程的基础上学习到更多的知识。感谢许老师!当然,也不能忘记我们的任课老师***老师,他一直以身作则,还为我们做好实验的模板,就是为了我们能更好的理解。老师们给了我们很大的支持和鼓励,才使得课程设计得以顺利的完成,在此真心感谢能遇见这么好的老的是很努力,两个人非常认真地对自己的工作进行交流,主动咨询老师,我也是是文档内容,她的基础知识没有那么好,而且在课程设计期间,她的计算机损
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年智算中心项目公司成立分析报告
- 2026年徐州生物工程职业技术学院高职单招职业适应性测试备考题库带答案解析
- 2026年陕西学前师范学院单招职业技能笔试备考试题带答案解析
- 2026年浙江警官职业学院高职单招职业适应性测试参考题库带答案解析
- 2026年湖南食品药品职业学院高职单招职业适应性测试参考题库带答案解析
- 2026年太原幼儿师范高等专科学校单招职业技能笔试备考题库带答案解析
- 2026年仰恩大学高职单招职业适应性测试参考题库带答案解析
- 2026年江西旅游商贸职业学院高职单招职业适应性测试参考题库带答案解析
- 2026年上海应用技术大学高职单招职业适应性测试模拟试题带答案解析
- 2026年昆山登云科技职业学院单招职业技能考试备考题库带答案解析
- 2026四川成都高新投资集团有限公司第一批校园招聘35人笔试考试备考试题及答案解析
- 循证护理在基础护理中的应用
- 复旦大学招生面试常见问题及回答要点
- 媒人介绍相亲协议书
- 道路交通法律课件
- 抢劫案件侦查课件
- 2025中国企业软件出海报告
- 2025年大学《农药化肥-农药残留检测》考试模拟试题及答案解析
- DB14T2163-2020 《信息化项目软件运维费用测算指南》
- 二氧化碳爆破施工技术方案
- 安全生产工作成效总结
评论
0/150
提交评论