- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                
引言
计算机网络技术发展至今已经大大超越了人们当初的预想,无论是人们日常的工作还是学习,我们都越来越多的依靠到互联网。各种实时性的聊天娱乐软件也同时诞生,而且为我们的即时通讯带来了众多的方便,比如说大家所熟知的腾讯QQ、微软的MSN、移动的Fetion等,都是做的比较成功的实时聊天工具。随着网络的日益普及,各种聊天工具也层出不穷,但当我们学习了《TCP/IP协议与网络编程》这门课程之后,我们便会觉得,其实要实现简单的网络通讯其实并不难。接下来的课程设计就是针对一个简单的网络聊天程序,利用MFC为开发工具,实现基本的通讯功能。
1.1聊天室程序的开发背景
近年来,互连网发展日新月异,网络使空间的距离不再成为人们沟通的障碍,世界各个角落的人们可以通过Internet收发邮件、实时聊天、获取最新的资讯。因此本次毕业设计以“面向连接的Winsock网络会话程序开发”为题,制作一个C/S聊天室程序,通过制作该程序还能更好的学习网络socket编程的相关知识。 
1.2聊天室的设计目标  
本课题是建立聊天通信模型,设计一个聊天室软件,包括服务器端和客户端,主要功能为: 
服务器端功能:
1、	初始化socket, 创建服务器端。
2、	维护一个链表,保存所有用户的IP地址、端口信息。
3、	接受用户传送来的聊天信息,然后向链表中的所用用户转发。
4、	接受用户传送来的连接判断命令,并向用户发出响应命令。
客户端功能:
  客户端界面上的两个文本框,一个用于显示接受的聊天信息,一个用来接受用户输入的聊天信息。当按下“发送”按钮时将信息发送给服务器。  
通过本课题的毕业设计,可以比较深入的了解和掌握WINSOCK控件基本属性、方法和事件,理解网络聊天通信的概念,输控制协议(TCP)进行数据交流,初步掌握网络聊天通信程序的设计方法。并能巩固和扩展大学期间的学习内容,进行项目的设计开发训练,更好的适应社会的需求。
总体设计 
2.1 功能要求
支持多个客户端的连接,在服务器和多个客户端之间进行数据传输;
接收客户端发送的消息,并显示在一个列表框中;
在用户连接上后有提示,显示出连接的用户名字;
发送信息时可以显示聊天的所有记录;
2.3系统主要功能和主要功能描述:
服务器端聊天程序必须能够做3件事情:
服务器聊天程序要在待定的端口上等待来自聊天客户的连接请求,并且需要维护一个客户连接表,以记录所有成功的连接。
服务器聊天程序要及时接受从各个聊天客户发送过来的信息,然后把这些信息转发到一个或多个客户连接。对于公共聊天室,服务器将把接受到的信息向除源端外的所有客户发送过去。
服务器还要监控这些连接的状态,在客户主动离开或发生故障时从列表中删除相应的表项,并及时更新连接表。
这些要求可以通过CSocket类提供的功能实现。从CSocket派生出两个类CListenSocket和CClientSocket,它们分别用来侦听客户的连接请求和建立与客户的连接。服务器只需要一个侦听套接字CListenSocket,然后根据客户的连接请求动态创建客户套接字CClientSocket。客户套接字的数量是不可预知的,因此需要一个列表来记录。MFC的CPtrList类就能实现这种功能。
客户端聊天程序需要完成以下几个功能:
客户端聊天程序要负责建立和维护与服务器的连接,通过获取用户的设置尝试与服务器的连接,并且随时检测连接的状态。
客户端聊天程序要把用户输入的信息及时发送到聊天服务器。一般情况下,当用户输入一行信息并且按下回车键后聊天程序就要把这一行信息发送出去,才能及时地满足用户的交互需求。
要随时准备好接受来自服务器的信息,随时把接受到的信息显示出来,让用户及时看到对方的响应。
在用户退出聊天过程是要关闭与服务器的连接。比较好的做法是提前通知服务器或者直接给服务器发送一条退出通知,使得服务器能够及时掌握客户端的连接状态,把对方客户的退出信息及时发送到对等实体上。
客户端聊天程序需要使用一个通过CSocket类派生出来的CChatSocket类来实现。该套接字用来发送一个与服务器的连接请求和维持与服务器的连接,发送和接收聊天信息,完成上述各项功能。
详细设计
3.1设计流程图
3.2客户端的实现
(1)首先启动Visual C++ 6.0,利用MFC AppWizard[EXE]建立一个新的MFC工程,工程名为tcpclient,在MFC AppWizard Step1的时候选择Dialog based 即基于对话框,在Step4时勾选Windows Sockets选项(如图3.11),其他默认值下一步。
图3.11 MFC的设置
	(2)客户端主要分为三个窗口,第一个是连接窗口,需要输入连接到服务器的相关设置信息;第二个是聊天信息显示窗口,该窗口显示登录服
                您可能关注的文档
- 本科毕设】基于VB的学生公选课选课系统的设计与开发.doc
 - 本科毕设】基于VHDL汉明码编译码器的设计与研究毕业论文.doc
 - 本科毕设】基于Vmware的第三代虚拟Honeynet部署以及攻击实例分析的设计与研究.doc
 - 本科毕设】基于VS技术的图像锐化处理.doc
 - 本科毕设】基于VS技术的图像锐化处理毕业设计.doc
 - 本科毕设】基于web的java语言学习平台的开发与研究.doc
 - 本科毕设】基于Web的分布式工作流模型的应用的设计与研究.doc
 - 本科毕设】基于Web的个人博客的设计与开发.doc
 - 本科毕设】基于WEB的济南大学教务处文件管理系统的设计与实现.doc
 - 本科毕设】基于WEB的酒店前台管理信息系统设计的开发与实现.doc
 
- 本科毕设基于Vmware的第三代虚拟Honeynet部署以及攻击实例分析的设计与研究(整理版).doc
 - 本科毕设基于WCF的即时通讯软件的设计与开发.doc
 - 本科毕设基于Web 20的网页设计文献翻译.doc
 - 本科毕设基于WEB+SQL校友录的设计与实现.doc
 - 本科毕设基于WebService的异构数据库检索系统的设计与开发.doc
 - 本科毕设基于web的ssl应用的设计与开发.doc
 - 本科毕设基于Web的办公室自动化(OA)系统的设计与实现.doc
 - 本科毕设基于WEB的超市管理系统设计的开发与实现.doc
 - 本科毕设基于web的房屋出租管理系统的设计与开发 毕业论文.doc
 - 本科毕设基于web的会务管理系统设计的开发与实现.doc
 
原创力文档
                        

文档评论(0)