聊天系统客户端的设计与实现本科生毕业设计论文.doc
《聊天系统客户端的设计与实现本科生毕业设计论文.doc》由会员分享,可在线阅读,更多相关《聊天系统客户端的设计与实现本科生毕业设计论文.doc(76页珍藏版)》请在三一办公上搜索。
1、聊天系统客户端的设计与实现摘 要SOCKET是在Windows进行网络通信编程的API接口,也是Windows网络编程的事实标准。在网络编程中最常用的方案便是C/S模型。本程序是一个基于C/S模式的网络聊天程序,主要用于测试面向连接的socket编程技术。本程序使用Virtual C+6.0编写。为方便测试,本程序采用server(服务器端)和client(客户端)合一模式,使用简洁方便。需要注意的是本程序C/S端合一的模式和服务器地址、服务器端口号固定以及自动申请用户登陆ID的设计不只为了方便测试,而且适宜商业化,但是在商业化阶段还是需要进行改进。本文主要是对本软件服务器端的设计作了比较详细
2、的介绍,并对服务器端进行了初步的开发。而客户端的设计有很多都需要完善。客户端是给用户使用的,从方便和美观上,还都还有很多需要完善的地方。而且,由于时间关系,客户端还有些功能没有完全。如果要使本系统成为一个实际应用系统并在网络上实际应用,还要再下一番功夫进行设计。关键词: 套接字 客户机 服务器 网络聊天 ABSTRACTThe SOCKET connects in the API that the Windows carries on the network correspondence plait distance, is also the fact standard that the ne
3、twork of Windows weaves the distance. The most in common use project would be the customer/server model in network weave distance. This text puts forward to carry out the Internet with the WINSOCK under customer/server model in the project of the familiar chat room software. This procedure is an acc
4、ording to customer/server mode of the network chat procedure, mainly used for the test to face to the copular socket plait distance. Use the Virtual C+6.0 plaits write. Test for the convenience, the procedure adoption server (the server carry) and client (the customer carry) s unite as one the mode,
5、 using the simple and direct convenience. What to need to be notice is this procedure the customer carry the server carry to unite as one of mode and obtain this machine IP address and au to be the customer debarkation ID the calculator automatically of design test for the convenience only, well pro
6、per and commercial, so need to carry on the improvement in the commercial stage. This article was mainly has made the quite detailed introduction to this software server end design, and has carried on the preliminary development to the server end. But the client side design has many needs to consumm
7、ate. The client side is to the user the use, from convenient and on artistic, but also has the place which many needs to consummate. Moreover, as a result of the time relationship, the client side also has a function not completely. If must make this system to become a practical application system a
8、nd in the network the practical application, but must the next time carry on the design again.Keyword: socket client server The network chats目 录第一章 概述11.1选题来源及意义11.1.1选题来源11.1.2选题意义11.2任务、要求及问题提出11.2.1任务、要求11.2.2问题提出21.3国内外发展概况21.3.1国内外发展概况21.3.2发展趋势3第二章 设计原理和过程52.1用户需求分析52.2设计原理概述52.3系统模块设计62.4服务器数
9、据库设计82.5客户/服务器程序设计92.6 TCP/IP协议11第三章 详细设计143.1类设计总体结构143.2服务器端底层通讯类设计153.3客户端底层通讯类设计163.4客户/服务器间通讯数据类设计173.5服务器应用程序类设计173.6客户端应用程序类设计18第四章 系统实现214.1系统环境214.1.1系统软硬环境214.1.2系统安装说明214.1.3系统运行说明224.1.4系统使用说明244.2具体实现244.2.1登录模块244.2.2查找用户模块244.2.3查看在线用户模块264.2.4发群体消息模块264.2.5系统参数模块274.2.6个人设定模块284.2.7正
10、常聊天模块284.3系统测试29结 论31谢 辞32参考文献33附 录34第一章 概述1.1选题来源及意义1.1.1选题来源在网络无所不在的今天,在Internet上,有icq,oicq,ticq等网络聊天软件,极大程度上方便了处于在世界各地的友人之间的相互联系,也使世界好象一下子缩小了,不管你在哪里,只要你上了网,打开这些软件,就可以给你的朋友发信息,不管对方是否也同时在线,只要知道他有号码。本文讨论基于TCP/IP通信开发聊天程序的关键技术,重点讨论面向对象方法以及聊天程序的实现方法,并给出了相应的VC+代码.网络聊天软件在国外的有icq等,在国内的主要有腾讯的Oicq,还有Ticq,Om
11、O和一些在网页上的即时通讯工具,像Chinaren网站上的WebMaster等等,都做得即美观,且功能强大,Oicq现在拥有非常大的用户群。现在也有很多,在网络上不使用服务器的通讯软件,这种软件小巧且方便,也能解决一部分问题。但是有服务器的通讯软件,有着不可比拟的优势:可以发送离线消息,不管用户当时是否在线,下次上线时,就可以看到这条消息了。可以保存用户的个人信息或介绍,供人查看。而且,那种通讯软件,是以机器为通讯单元的,而这种聊天软件是以人为通讯单元。总之,这种软件在网络上,还是有很大的用途的,为网络上通讯,带来极大的方便。虽然说,现在这个软件已经有公司把它开发出来了,我再做也不一定有新意,
12、也未必可以做得更好,但作为毕业设计,也算是对我能力的一个考验和这四年来我学习知识的一个检查。如果这个软件做得比较成功的话,能为网络通讯带来一定的方便的话,我就很满足了。1.1.2选题意义以前聊天的方式早已离我们远去。自从我们顺应现代工业的潮流,从平房搬入楼房之后,在享受自动的水、电、煤气之时,我们也失去了旧日街坊邻里聚在一起群聚而谈的热闹和温情。甚至这种气氛也渗透到了家庭内部,我们与家人一起聊天的时间也越来越少。然而这并不是说人们不需要聊天提供的享受。在人情淡薄怀旧气氛浓重的九十年代末期,网络聊天出现了。那些寂寞无助的“亚细亚的孤儿”们忽然发现了这一巨大的狂欢场所,更有甚于电子游戏带给他们的新
13、奇和喜悦。“网聊”借助网络这种现代通讯手段在一定程度上恢复甚至拓展了传统聊天在人们生活中失去的地盘。这些因素都决定了网络聊天势必成为一种青年人的流行事物。1.2任务、要求及问题提出1.2.1任务、要求本设计基于TCP/IP通信开发聊天程序,综合利用VC+程序设计语言,以SQL Server2000数据库做后台开发出一高效实用的聊天系统客户端软件。该系统要求实现:1.实现各种信息的系统化、规范化和自动化;2.客户端应具有十分友好的主窗口界面,登陆界面和注册界面等;3.客户端可以使用户方便地进行登录、下线、接收消息和发送消息等;4.客户端能够使用TCP连接实现与服务器端进行良好的协作与通信;5.客
14、户端能够使用IP连接,与其他客户端进行信息的收发;6.客户端各个界面的设计合理、实用。1.2.2问题提出随着计算机应用技术的日益普及,网络也遍及到我们生活的每个角落,很好的利用这人资源,将为我们的工作和学习,带来极大的方便和提高工作效率,所以,开发一个网络里的C/S通讯软件,是十分必要。由于采用面向对象方法开发软件具有明显的优点,本系统将采用面向对象方法进行开发。由于采用面向对象的系统模型可以使整个软件系统的结构变得更加灵活,本系统的结构模型将采用面向对象的系统模型,采用VC+6.0这个可视化开发工具进行编码。传统的软件工程方法有生命周期方法和快速原型法。面向对象方法学是一种全新的软件工程方法
15、,其出发点和基本原则是尽可能模拟人类习惯的思维方式,把构成客观世界的实体抽象为对象。概括地说,面向对象方法学有四个要点:1.认为客观世界是由各种对象组成的,复杂的对象可以由比较简单的对象以某种方式组合而成;2.把所有对象都划分成各种对象类,每个对象类可以定义一组数据和方法;3.按照子类和父类的关系,把若干对象类组成一个层次结构的系统;4.对象彼此之间仅能通过传递消息互相联系。用面向对象方法学开发的软件有以下优点:1.与人类习惯的思维方法一致;2.稳定性好;3.可重用性好;4.可维护性好。1.3国内外发展概况1.3.1国内外发展概况伴随着网络的发展,已经有大量的聊天类软件进入了实用阶段,例如现阶
16、段大家经常使用的QQ,ICQ和MSN等,他们已经融入到大家的网络生活中,成为大家网络生活中必不可少的组成部分。而且其程序的功能也伴随着网络技术的发展而不断的完善和发展,从最初的只支持文本式聊天一直到现在的图文聊天、语音聊天、视频对话等,技术越来越成熟可靠。网络聊天软件在国外的有icq等,在国内的主要有腾讯的Oicq,还有Ticq,OmO和一些在网页上的即时通讯工具,像Chinaren网站上的WebMaster等等,都做得即美观,且功能强大,Oicq现在拥有非常大的用户群。现在也有很多,在网络上不使用服务器的通讯软件,这种软件小巧且方便,也能解决一部分问题。但是有服务器的通讯软件,有着不可比拟的
17、优势:可以发送离线消息,不管用户当时是否在线,下次上线时,就可以看到这条消息了。可以保存用户的个人信息或介绍,供人查看。而且,那种通讯软件,是以机器为通讯单元的,而这种聊天软件是以人为通讯单元。总之,这种软件在网络上,还是有很大的用途的,为网络上通讯,带来极大的方便。传统聊天是指在任何现代通讯技术出现之前人类最寻常的交流方式,即面对面地对话。它包括非正式的私人谈话,如家人团聚、邻居串门、朋友造访,也包括一些较为随意的多人集会如酒会、沙龙和座谈会。聊天的特点在于它的无目的性,天南地北,海阔天空,都可以作为谈资助兴,所以正式的访谈和会议都不在聊天之列。传统聊天具有多重社会功能,比如交流情感、促进友
18、谊、扩散信息等等,但最主要的还是消闲,一种有效的排解无聊的手段无聊这一词的字面意思就是指“不值一聊”。聊天作为一种消闲手段廉价而富有人情味,很适合人类这种拥有语言能力的高等群居动物。梁实秋的“雅舍小品”里有专文谈聊天的好处。即使在现代通讯方式已经非常普及的今天,传统聊天方式依然不可能被取代,然而它占有人们的时间已经大为缩小。虽然电话和网络提供了远程的即时交流手段,但是现代社会一方面加快了人们的生活和工作节奏,另一方面以商业化的手段向人们提供了更多消闲方式,其中电视就挤占了我们原先大量的聊天时间。由于电视的诱惑,传统聊天被迫让出了它在人类生活中的地位。茶余饭后不再是门前一张板凳围在一起胡侃,而是
19、每家每户坐在封闭的单元房内面对一台电子显像管。电视节目虽然表面上比聊天更为丰富多彩,但是看电视本身单向传递信息,没有反馈机制,观众只是被动地接受信息,只在极小的程度上参与节目。电视并不促进观众思考,也不会根据观众收看时的反应做出调整。更不要说电视的非人格化与聊天富有人情味的区别。电视虽然对人类消闲时间的争夺战中胜出,但它却不可能满足人类所有的需要,尤其是传统聊天能够满足的那些需要。这些需要也不是电子游戏、观看电影话剧表演甚至旅游所能替代的。这时,一种新的聊天形式借助网络生长出来,填补了人们的精神空白。网络聊天同样具有传统聊天的基本功能,即消闲的作用,它也同样可以交流情感、促进友谊、传递信息,满
20、足表达欲望。但它并非是传统聊天在网络上简单的呈现和复制,它具有并非本质但十分重要的特殊性质。1.3.2发展趋势最后试着讨论一下网络聊天的命运。网络聊天的现实存在不可能因为老师和家长的反对而消除,也不会因为某某法规的出台而被管制。淘汰它的只能是更发达的聊天技术,即语音聊天。语音聊天更为经济快捷,单位时间传递的信息量也更大。语音聊天的技术已经成熟,待它普及之后成熟之后,目前这种“打电话”的网络聊天方式将成为历史。等有一天,我们都可以像打免费电话那样语音聊天时,我们还会怀念当年那段“此时无声胜有声”的网络聊天故事吗?第二章 设计原理和过程2.1用户需求分析提供基于TCP/IP网络的即时消息传送、大小
21、图标方式、实时聊天、多人聊天等功能。具体列举如下:支持多账号。可以同时发送同一个消息给多人,通过输入这些人的号码列表或姓名列表。可以同时发送一个消息给所有好友。即使用户不在线,也能通过服务器发送离线消息。提供消息、聊天的历史记录,方便对信息的查看和管理。提供查看在线的人的功能。提供按ID或姓名查找用户的功能,添加用户方便。小窗口显示,不占用屏幕很大的空间。支持隐身登陆,可以看到在线的朋友,朋友却不知道你上线。可以实时显示用户的状态和随时改变自己的状态。提供了自动弹出消息。好友上线通知。好友下线更新。查看好友信息。按姓名或号码查找某人。在好友列表中删除某人。更改个人信息。系统设置。主窗口总是浮在
22、最上端。速度快,占用资源少。2.2设计原理概述采用客户端服务器模型,使用从MFC类中的CAsyncSocket类的派生类进行实现底层通讯,底层利用UDP数据报协议进行通讯,这样,便于客户端之间的直接通讯,也可以高效的传送消息。因为使用UDP协议进行通讯,所以要自己控制其可靠性。我每发送一个数据,接受方接受到数据后,会发回一个响应信息,发送方在一个超时时间内,收到响应信息,就表示发送数据成功,若没有收到,就表示发送失败,会按用户指定的次数N,重试N次,如果N次都失败,就返回发送数据失败。当然,发回来的确认信息也可能丢失,但确认信息很短,相对来说,丢失的机率会小一些,是一个折中的办法。为了保存用户
23、信息和好友信息及一些相关数据,服务器使用到数据库技术。服务器的数据库采用的是ODBC的SQL2000数据源,服务器访问数据库,用的是MFC中的CDatabase和CRecordset,因为,对数据库的操作简单,服务器端,我只要功能,不需做界面,所以使用Sql语句直接访问数据库,已经足够满足要求了。服务器运行的流程为:服务器运行后,开启服务,则服务器开始侦听用户请求,如有信息发送过来,首先,发送回确认信息,然后,建立一个线程,处理接受到的数据。在线程里,按照接受到数据的类别,进行相应的处理,如有需要,会向用户发送处理的结果,或成功或失败的消息,处理结束后,线程就结束了。这样,可以实时接受每个用户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 聊天 系统 客户端 设计 实现 本科生 毕业设计 论文

链接地址:https://www.31ppt.com/p-4030763.html