网络课程设计

上传人:M****1 文档编号:508064911 上传时间:2024-01-30 格式:DOCX 页数:33 大小:130.76KB
返回 下载 相关 举报
网络课程设计_第1页
第1页 / 共33页
网络课程设计_第2页
第2页 / 共33页
网络课程设计_第3页
第3页 / 共33页
网络课程设计_第4页
第4页 / 共33页
网络课程设计_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《网络课程设计》由会员分享,可在线阅读,更多相关《网络课程设计(33页珍藏版)》请在金锄头文库上搜索。

1、简单聊天程序的设计与实现摘 要本课程设计主要是设计并实现一个简单的聊天程序,该聊天 程序能够支持多人聊天,聊天的内容可以仅仅支持文本信息,聊天程 序包括服务器程序和客户端程序。在课程设计中系统的开发平台为 Eclipse程序运行平台为Windows XP。关键词:聊天程序;服务器;客户端;Eclipse本课程设计主要是简单聊天程序的设计,使用MSN或QQ,分析聊 天程序的功能需求及工作原理。该聊天程序能够支持多人聊天,聊天 的内容可以仅仅支持文本信息,聊天程序包括服务器程序和客户端程 序。1.1课程设计目的该课程设计的目的主要是通过对简单聊天程序的设计及QQ原理 的分析,了解聊天程序的功能需求

2、及工作原理;熟悉TCP/IP协议以及 套节字编程原理;熟悉Eclipse编程环境及Socket/ServerSocket编 程方法。1.2课程设计要求(1)按要求编写课程设计报告书,能正确阐述设计结果。(2)通过课程设计培养学生严谨的科学态度,认真的工作作风和 团队协作精神。(3 )学会文献检索的基本方法和综合运用文献的能力。(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。13课程设计平台课程设计中系统的开发平台为Eclipse,程序运行平台为WindowsXP。2需求分析2.1功能需求分析(1) 用户端之间的信息发送,本程序需要实现的最基本的功能。 用户在界面上可以将自己需要发

3、送的信息填入相应的对话框中,点击 发送按钮后,可以将信息正常的发送给相应的其它用户,这个过程中 的客户端与客户端之间使用点对点发送信息,预计利用TCP/IP协议中 的UDP协议,在本程序中共需要3个端口,此功能预计使用3号端口。(2) 在线用户主机IP列表的维护。在用户发送信息之前,需要 选择相应的目的地端IP,这也就需要客户端拥有在线用户主机的IP 地址,这个在线主机列表的维护是需要客户端定时自动向服务器端发 送信息,服务器端收集并维护在线用户列表,再发送回客户端。需要 在客户端和服务器端都使用定时器来完成此功能。此功能预计使用1、 2号端口。(3) 在C/S模式中,服务器与客户端是相互依赖

4、的。在客户端启 用以后,需要查看服务器端是否在线,服务器在线才能正常使用客户 端,如果服务器不在线,则在检测一定次数以后自动退出客户端程序。 在使用过程中,客户端在指定时间内未向服务器端发送信息的,服务 器认为客户端下线;客户端在一定时间内未收到服务器端信息的,认 为服务器已经下线,则提示用户并建议退出,在用户一定时间后没有 退出的则自动关闭客户端程序。2.2数据需求分析(1) 客户端之间聊天信息。在控件上显示时格式化,更易于用户 的查看自己发送或接收到的信息。(2) 在线用户聊天信息。服务器端存放在适当的空间中,在发送 给客户端时,对信息列表进行格式化,便于客户端提取信息。(3) 客户端向服

5、务器端发送的确认在线信息。包括客户端刚刚启 动时的初始化信息和在使用过程中的确认在线信息。(4) 其它程序内部可能需要设计的数据结构体。2.3性能需求分析(1)可靠性高,能在由于系统问题或其它原因产生错误后,作出 相对应处理,比如网络初始化失败、服务器不在线等,可以提示用户 安全退出本程序,在出现不可知的错误以后,可以尽量安全的退出程 序。在程序的设计过程中,要求能尽可能多的设想到用户使用过程中 可能发生的事件,并能在判断事件后做出相应的处理,使程序具有较 高的容错性能。(2)宜操作性,程序简单易懂,容易上手使用。设 计界面是,简化界面的复杂性,模拟QQ等现有即时通讯工具的界面, 使用户能很容

6、易看懂并使用。(3 )开发文档易理解,保证以后自己二次开发或他人接手开发时, 能够清晰的理解整个系统的设计思路和实现细节。(4)模块化设计此软件的功能,不同的模块实现不同的功能,使 得软件易于以后的维护与扩展,在以后可以更好的完善本软件的功能, 更方便于在工作中的应用。2.4运行需求分析(1)用户界面程序较小,启动速度快。可在网络中使用,有注册功能,需进行 用户登录。启动后的应用界面要清爽,设计要简单明了,要具有较高 的易用性。(2 )故障处理在遇到可预知的故障与情况时,能提示用户并自动退出;在遇到 不可预知的故障时能安全退出。3设计原理3.1聊天程序的工作原理QQ聊天程序采用的是C/S通信模

7、式,即客户/服务模式,它把一 个应用划分成功能不同的两个部分,分别在不同的计算机上运行,其 中一个为服务端程序,用来响应和提供固定的服务,一个为客户端程 序,用来向服务端提出请求和要求某种服务。在数量关系上,通常有 一对一的(即一个服务端程序和一个客户端程序之间通信),也有一对 多的(即一个服务端程序和多个客户端程序之间通信),也有多对多的 (即多个服务端程序和多个客户端程序之间通信)。所谓服务端程序、 客户端程序也是相对的概念,有时在一个程序中既有服务端又有客户 端的功能。QQ聊天程序分成了两个程序,一个安装在腾讯公司的服务 器上,我们称之为服务端程序,一个安装在QQ用户的计算机上,我们 称

8、之为客户端程序。在许多介绍网络通信编程的书籍中有关网络聊天 的例子,当一个客户要与另一个客户聊天时,第一个客户先把聊天数 据发送给服务器,然后服务器再把聊天数据转发给第二个客户,服务 器好像一个中转站,这在客户数量比较少时,服务器还能承受,在客 户数量比较多时,服务器肯定要瘫痪。何况客户之间还要传送文件、 语音聊天、视频聊天等等,为了减少服务器的压力,各客户端之间需 要直接通信。(1 )在服务端和客户端之间(一对多)用于客户端程序登录,验证用户密码,获取其它在线好友信息等 等。(2)在客户端和客户端之间(多对多)用于在线好友间直接通信聊天。此时每个客户端程序上既有实现 服务端功能的部分,又有实

9、现客户端功能的部分,前者用于接收聊天 数据,后者用于发送聊天数据。在用C/S模式进行通信时,作为客户端在请求与服务端连接时需 要知道服务端的IP地址,腾讯公司的服务器具有固定的公网地址,这 没有问题。但是在客户端和客户端之间通信时,每个用户的IP地址都 是ISP所给的临时地址,无法固定,那么某个用户要与另一个用户连 接时,怎么知道对方的IP地址呢?当一个用户连接到In ternet后,获 得了一个临时的公网地址,当登录到QQ时,QQ服务端会获得该上线 用户的IP地址,然后告知其他要与该上线用户聊天的用户,其他用户 就可以连接该用户与之直接通信了。在Win32平台上,对于众多的基层网络协议,Wi

10、nsock是访问它 们的首选接口。如果想从头开发一个网络通信应用程序,TCP/IP就是 首选协议之一。为了保证可靠的数据传输,宜选择TCP协议。3.2 TCP/IP 协议TCP/IP ( Transmission Control Protocol/Internet Protocol) 的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协 议,这个协议是Internet最基本的协议、Internet国际互联网络的 基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。IP层接收由更低层(网络接口层例如以太网设备驱动

11、程序)发来 的数据包,并把该数据包发送到更高-TCP或UDP层;相反,IP层 也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可 靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没 有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它 的主机的地址(目的地址)。高层的TCP和UDP服务在接收数据包时,通常假设包中的源 地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础, 这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个 选项,叫作IP source routing,可以用来指定一条源地址和目的地 址之间的直接路径。对于一些TCP和U

12、DP的服务来说,使用了该选项 的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它 的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺 骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认 的服务将产生问题并且会被非法入侵。如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向 上传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电 路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的 包可以被排序,而损坏的包可以被重传。TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序 和客户程序。应用程序轮流将信息送回TCP层,TCP层便将

13、它们向下 传送到IP层,设备驱动程序和物理介质,最后到接收方。面向连接的服务(例如 Telne t、FTP、rlogin、X Windows 和 SMTP) 需要高度的可靠性,所以它们使用了 TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。3.3套接字编程原理在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服 务器模式(Client/Server model)。该模式的建立基于以下两点:1、 非对等作用;2、通信完全是异步的。客户机/服务器模式在操作过程 中采取的是主动请示方式:首先服务器方要先启动,并根据请示提供相应服务:(过程如

14、下)(1)打开一通信通道并告知本地主机,它愿意在某一个公认地址 上接收客户请求。(2 )等待客户请求到达该端口。(3 )接收到重复服务请求,处理该请求并发送应答信号。(4)返回第二步,等待另一客户请求(5)关闭服务器。客户方:(1 )打开一通信通道,并连接到服务器所在主机的特定端口。(2)向服务器发送服务请求报文,等待并接收应答;继续提出请 求(3 )请求结束后关闭通信通道并终止。所谓的客户客户端/服务器。是一种能够在基于网络环境的分布处 理过程中,使用基于连接的网络通信模型。该通信模型首先在客户机 和服务器之间定义一套通信协议,并创建一个Socket类,利用这个类 来建立一条可靠的链接;然后

15、,客户端/服务器再在这条连接上可靠地 传输数据。客户端发出请求,服务器发出请求,服务器监听来自客户 机的请求,并为客户端提供相应服务。利用Socket类,我们可以轻松地实现网路客户端程序的编写, Socket类的一些常用的方法汇总如下:get LocalAddressO读取套接字对象的本地地址。get LocalPor t()读取套接字所使用的本地端口号。getlnputSt ream()得到一个输入流。getOutputSt ream()得到一个输出流。通常情况下,客户端只要能够顺序地处理服务器程序的响应就可 以了,因此客户端程序通常不用使用多线程。3.4 Eclipse开发环境Eclips

16、e最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,是著名的跨平台的自由集成开发环境。 最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他 计算机语言比如C+和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得 Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多 软件开发商以Eclipse为框架开发自己的IDE。Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java 的窗口组件,类似Java本身提供的AWT和Swing窗口组件;不过IBM 声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号