




已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1简单聊天程序的设计与实现 摘 要本课程设计主要是设计并实现一个简单的聊天程序,该聊天程序能够支持多人聊天,聊天的内容可以仅仅支持文本信息,聊天程序包括服务器程序和客户端程序。在课程设计中系统的开发平台为Eclipse 程序运行平台 为 Windows XP。关键词:聊天程序;服务器;客户端;Eclipse21 引 言本课程设计主要是简单聊天程序的设计,使用 MSN 或 QQ,分析聊天程序的功能需求及工作原理。该聊天程序能够支持多人聊天,聊天的内容可以仅仅支持文本信息,聊天程序包括服务器程序和客户端程序。1.1 课程设计目的该课程设计的目的主要是通过对简单聊天程序的设计及 QQ 原理的分析,了解聊天程序的功能需求及工作原理;熟悉 TCP/IP 协议以及套节字编程原理;熟悉 Eclipse 编程环境及 Socket/ServerSocket 编程方法。1.2 课程设计要求(1)按要求编写课程设计报告书,能正确阐述设计结果。(2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。(3)学会文献检索的基本方法和综合运用文献的能力。(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。31.3 课程设计平台课程设计中系统的开发平台为 Eclipse,程序运行平台为 Windows XP。2 需 求 分 析2.1 功能需求分析(1)用户端之间的信息发送,本程序需要实现的最基本的功能。用户在界面上可以将自己需要发送的信息填入相应的对话框中,点击发送按钮后,可以将信息正常的发送给相应的其它用户,这个过程中的客户端与客户端之间使用点对点发送信息,预计利用 TCP/IP 协议中的 UDP 协议 ,在本程序中共需要 3 个端口,此功能 预计使用 3 号端口。(2)在线用户主机 IP 列表的维护。在用户发送信息之前,需要选择相应的目的地端 IP,这也就需要客户端拥有在线用户主机的 IP 地址,4这个在线主机列表的维护是需要客户端定时自动向服务器端发送信息,服务器端收集并维护在线用户列表,再发送回客户端。需要在客户端和服务器端都使用定时器来完成此功能。此功能预计使用 1、2 号端口。(3)在 C/S 模式中,服务器与客户端是相互依赖的。在客户端启用以后,需要查看服务器端是否在线,服务器在线才能正常使用客户端,如果服务器不在线,则在检测一定次数以后自动退出客户端程序。在使用过程中,客户端在指定时间内未向服务器端发送信息的,服务器认为客户端下线;客户端在一定时间内未收到服务器端信息的,认为服务器已经下线,则提示用户并建议退出,在用户一定时间后没有退出的则自动关闭客户端程序 1。2.2 数据需求分析(1)客户端之间聊天信息。在控件上显示时格式化,更易于用户的查看自己发送或接收到的信息。(2)在线用户聊天信息。服务器端存放在适当的空间中,在发送给客户端时,对信息列表进行格式化,便于客户端提取信息。(3)客户端向服务器端发送的确认在线信息。包括客户端刚刚启动时的初始化信息和在使用过程中的确认在线信息。(4)其它程序内部可能需要设计的数据结构体。2.3 性能需求分析(1)可靠性高,能在由于系统问题或其它原因产生错误后,作出相对应处理,比如网络初始化失败、服务器不在线等,可以提示用户安全5退出本程序,在出现不可知的错误以后,可以尽量安全的退出程序。在程序的设计过程中,要求能尽可能多的设想到用户使用过程中可能发生的事件,并能在判断事件后做出相应的处理,使程序具有较高的容错性能 2。(2)宜操作性,程序简单易懂,容易上手使用。设计界面是,简化界面的复杂性,模拟 QQ 等现有即时通讯工具的界面,使用户能很容易看懂并使用。(3)开发文档易理解,保证以后自己二次开发或他人接手开发时,能够清晰的理解整个系统的设计思路和实现细节。(4)模块化设计此软件的功能,不同的模块实现不同的功能,使得软件易于以后的维护与扩展,在以后可以更好的完善本软件的功能,更方便于在工作中的应用。2.4 运行需求分析(1)用户界面程序较小,启动速度快。可在网络中使用,有注册功能,需进行用户登录。启动后的应用界面要清爽,设计要简单明了,要具有较高的易用性。(2)故障处理在遇到可预知的故障与情况时,能提示用户并自动退出;在遇到不可预知的故障时能安全退出。63 设 计 原 理3.1 聊天程序的工作原理QQ 聊天程序采用的是 C/S 通信模式,即客户/ 服务模式,它把一个应用划分成功能不同的两个部分,分别在不同的计算机上运行,其中一个为服务端程序,用来响应和提供固定的服务,一个为客户端程序,用来向服务端提出请求和要求某种服务。在数量关系上,通常有一对一的(即一个服务端程序和一个客户端程序之间通信),也有一对多的(即一个服务端程序和多个客户端程序之间通信),也有多对多的(即多个服务端程序和多个客户端程序之间通信)。所谓服务端程序、客户端程序也是相对的概念,有时在一个程序中既有服务端又有客户端的功能。QQ 聊天程序分成了两个程序,一个安装在腾讯公司的服务器上,我们称之为服务端程序,一个安装在 QQ 用户的计算机上,我们称之为客户端程序。在许多介绍网络通信编程的书籍中有关网络聊天的例子,当一个客户要与另一个客户聊天时,第一个客户先把聊天数据发送给服务器,然后服务器再把聊天数据转发给第二个客户,服务器好像一个中转站,这在客户数量比较少时,服务器还能承受,在客户数量7比较多时,服务器肯定要瘫痪。何况客户之间还要传送文件、语音聊天、视频聊天等等,为了减少服务器的压力,各客户端之间需要直接通信。(1)在服务端和客户端之间(一对多)用于客户端程序登录,验证用户密码,获取其它在线好友信息等等。(2)在客户端和客户端之间(多对多)用于在线好友间直接通信聊天。此时每个客户端程序上既有实现服务端功能的部分,又有实现客户端功能的部分,前者用于接收聊天数据,后者用于发送聊天数据。在用 C/S 模式进行通信时,作为客户端在请求与服务端连接时需要知道服务端的 IP 地址,腾讯公司的服务器具有固定的公网地址,这没有问题。但是在客户端和客户端之间通信时,每个用户的 IP 地址都是 ISP 所给的临时地址,无法固定,那么某个用户要与另一个用户连接时,怎么知道对方的 IP 地址呢? 当一个用户连接到 Internet 后, 获得了一个临时的公网地址,当登录到 QQ 时,QQ 服务端会获得该上线用户的 IP 地址,然后告知其他要与该上线用户聊天的用户,其他用户就可以连接该用户与之直接通信了。在 Win32 平台上, 对 于众多的基层网络协议,Winsock 是访问它们的首选接口。如果想从头开发一个网络通信应用程序,TCP/IP 就是首选协议之一。为了保证可靠的数据传输,宜选择 TCP 协议 3。3.2 TCP/IP 协议TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中8文译名为传输控制协议/ 因特网互联协议,又叫网络通讯协议,这个协议是 Internet 最基本的 协议、Internet 国际 互联网络的基础,简单地说,就是由网络层的 IP 协议和传输层的 TCP 协议组成的。网际协议 IP 是 TCP/IP 的心脏,也是网络层中最重要的协议。IP 层 接收由更低 层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层-TCP 或 UDP 层;相反,IP 层也把从 TCP 或 UDP 层接收来的数据包传送到更低层。IP 数据包是不可靠的,因为 IP 并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP 数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。高层的 TCP 和 UDP 服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP 地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP 确认包含一个选项,叫作 IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些 TCP 和 UDP 的服务来说,使用了该选项的 IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠 IP 源地址做确认的服务将产生问题并且会被非法入侵 4。如果 IP 数据包中有已经封好的 TCP 数据包,那么 IP 将把它们向上 传 送到 TCP 层。TCP 将包排序并进行 错误检查,同时实现虚电路间的连接。TCP 数据包中包括序号和确 认 ,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。9TCP 将它的信息送到更高层的应用程序,例如 Telnet 的服务程序和客户程序。应用程序轮流将信息送回 TCP 层,TCP 层便将它们向下传送到 IP 层,设备驱动 程序和物理介质,最后到接收方。面向连接的服务(例如 Telnet、FTP、rlogin、X Windows 和 SMTP)需要高度的可靠性,所以它们使用了 TCP。DNS 在某些情况下使用TCP(发送和接收域名数据库),但使用 UDP 传送有关单个主机的信息。3.3 套接字编程原理在 TCP/IP 网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Server model)。该模式的建立基于以下两点:1、非对等作用;2、通信完全是异步的。客户机/ 服务 器模式在操作过程中采取的是主动请示方式:首先服务器方要先启动,并根据请示提供相应服务:(过程如下)(1)打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求。(2)等待客户请求到达该端口。(3)接收到重复服务请求,处理该请求并发送应答信号。(4)返回第二步,等待另一客户请求(5)关闭服务器。客户方:(1)打开一通信通道,并连接到服务器所在主机的特定端口。(2)向服务器发送服务请求报文,等待并接收应答;继续提出请10求(3)请求结束后关闭通信通道并终止。所谓的客户客户端/服 务器。是一种能够在基于网络环境的分布处理过程中,使用基于连接的网络通信模型。该通信模型首先在客户机和服务器之间定义一套通信协议,并创建一个 Socket 类,利用这个类来建立一条可靠的链接;然后,客户端/ 服 务器再在这条连接上可靠地传输数据。客户端发出请求,服务器发出请求,服务器监听来自客户机的请求,并为客户端提供相应服务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 业务提奖管理制度
- 东华交易管理制度
- 东西借用管理制度
- 个人挂账管理制度
- 中介薪资管理制度
- 中医经费管理制度
- 中国华电管理制度
- 中国餐饮管理制度
- 中学教育管理制度
- 中学校园管理制度
- 铁丝围挡施工方案
- 石家庄事业单位综合类岗位笔试真题2024
- 《宴会国际礼仪》课件
- 【博观研究院】2025年跨境进口保健品市场分析报告
- 叉车安全使用管理制度
- 2025吉林长春市轨道交通集团限公司校园招聘670人高频重点提升(共500题)附带答案详解
- 【MOOC】高分子化学-浙江大学 中国大学慕课MOOC答案
- 【MOOC】西方园林历史与艺术-北京林业大学 中国大学慕课MOOC答案
- 《中医情志护理》课件
- 【MOOC】质量工程技术基础-北京航空航天大学 中国大学慕课MOOC答案
- 跆拳道培训机构家长会
评论
0/150
提交评论