- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MFC的聊天程序设计.doc
聊天程序设计报告----网络编程设计报告目 录 设计原理————————————————————————1功能描述————————————————————————1详细设计————————————————————————2工作进度————————————————————————7设计总结————————————————————————8使用方法————————————————————————9附录——————————————————————————9一. 设计原理计算机网络技术发展至今已经大大超越了人们当初的预想,无论是人们日常的工作还是学习,我们都越来越多的依靠到互联网。各种实时性的聊天娱乐软件也同时诞生,而且为我们的即时通讯带来了众多的方便,比如说大家所熟知的腾讯QQ、微软的MSN、中国移动的Fetion等,都是做的比较成功的实时聊天工具。随着网络的日益普及,各种聊天工具也层出不穷,但当我们学习了《网络编程》这门课程之后,我们便会觉得,其实要实现简单的网络通讯其实并不难。接下来的课程设计就是针对一个简单的网络聊天程序,利用MFC为开发工具,实现基本的通讯功能。此程序主要分为两个模块:服务线程和聊天线程。服务线程用于提供一个网络端口,等待客户线程发出请求,登录到作为服务端的程序,然后进行网络通讯和消息的收发;客户端可通过服务器端的IP地址发送连接请求,然后建立连接,进行通讯。整个程序的主体使用了CSocket类的方法,实现了网络通讯聊天。二.功能描述(需求分析)1、一对一会话。此程序既可以作为服务器,也可以作为客户端。当发起聊天请求时是客户端,而当接受连接请求时时服务器。通讯基于可靠的TCP连接。2、修改联系人通讯地址。 可以根据联系人IP地址和端口的不同建立不同的连接。可以实时修改联系人的地址。3、多线程技术。进程启动时会开启一个专门用于监听连接请求的服务进程,线程函数为UINT threadListen(LPVOID lpParam),用来被动接受聊天请求。无论是主动发起聊天请求还是被动接受连接请求,都将启动一个名为CIMTalking的线程,专门处理聊天业务。4、整个程序的主体使用了基于CSocket类的网络编程方法,综合运用了CSocket、 CSocketFile、CArchive等类的方法,实现了网络通讯聊天。IM的功能可划分为以下几点:1) 界面显示:将在线好友显示在好友列表中,并实现好友分组,便于选择联系人。2) 聊天功能:与好友聊天。3) 聊天纪录:能保存聊天纪录,并能察看聊天纪录。(未实现)4) 信息提示:当连接失败(一般为对方不在线)时,提醒用户连接失败及原因。5) 修改联系地址:由于本聊天程序不涉及登录服务器,故开启进程即为在线,否则离线。故需要动态修改联系人IP地址及端口号。 聊天处理聊天程序聊天处理聊天程序监听连接请求发送消息接收消息保存聊天记录显示聊天记录聊天程序模块图三、详细设计程序中主要变量及类的功能说明如下:CIMTalkingDlg --- 聊天过程处理函数类CIMTalking ---- 用于处理聊天过程的运行时类peerAddress ---- 联系人地址,包括套接字地址和联系人姓名,这是一个结构体CIMApp ----- 程序主线程CIMDlg ----- 程序UI线程,用于处理消息,界面窗口初始化等工作CChatSock ---- 专门用于聊天的套接字类,继承自CSocketCAddrDlg ----- 显示联系人地址、修改联系人地址CAboutDlg----- 显示程序版本信息联系人地址结构体类型:struct peerAddress{ struct sockaddr_in peerAddr; //对方地址 char peerName[20]; //对方姓名};类图框架用Visual Studio 2008逆向工程导出的详细类图开始开始 聊天?输入新地址编辑联系人地址?选择联系人聊天?输入新地址编辑联系人地址?选择联系人 NY等待连接请求等待连接请求有连接请求?N有连接请求?结束关闭主程序聊天结束,关闭聊天窗口开始聊天/收发消息Y结束关闭主程序聊天结束,关闭聊天窗口开始聊天/收发消息 N发起连接请求发起连接请求程序流程图UI设计程序主界面聊天对话框界面修改联系人地址对话框界面四.工程进度计划进度如下:第一阶段 6月4号-----6月10号分析功能要求第二阶段 6月11号-----6月12号分析模型、设计模型、详细设计第三阶段 6月13号 开始编码实现程序并开始进行文档编写五、设计总结4.1 程序的应改进之处:1、无法知道联系人是否在线,除非连接;而且若把联系人的套接字地址,即IP地址和端口搞错,通讯失败。即使对方在线
文档评论(0)