版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分类号:单位代码:10452e1妙疗交鴉linyi university学士学位毕业设计(论文)x x x x x的设计与实现姓 名学 号年 级_专 业系(院)指导教师_20年5刀木文描述了 j“va技术的特点以及在局域网上的使用情况,介绍这种技术的重要编程 方法和以java开发技术为核心的聊天系统。该系统开发主要包括一个网络聊天服务器程 序和一个网络聊天客户程序两个方面。前者通过sockel套接字建立服务器,服务器能读 取、转发客户端发来信息,并能刷新用户列表。后者通过与服务器建立连接,来进行客户 端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承thread类来 建立多线程
2、。开发中利用了计算机网络编程的基本理论知识,如tcp/ip协议、客户端/服 务器端模式(client/server模式)、网络编程的设计方法等。该局域网聊天工具采用jdk 和jcrcator为基本开发环境和java语言进行编写。关键词:局域网;目录h'j s1第1章java的网络功能与编程21. 1java的网络功能与编程21. 1. 1 java 概述21. 1.2 java 的特点21. 1.3 java语言的应用前景51.2ip/tcp协议常识61. 3 socket的简介错误!未定义书签。第2章规划设计82. 1课题来源82.2需求分析82. 3研究价值9第3章系统分析与设计方
3、案103. 1聊天系统的总休设计要点103.2聊天系统的设计步骤及功能模块划分10第4章系统设计与实现114. 1开发环境工具114.2环境要求错误!未定义书签。4. 3聊天系统的测试错误!未定义书签。结论11参考文献13致谢14冃ij s面向对象程序设计方法是目前软件开发的主流方法。java语言是目前功能最强、应用 最广泛的一种完全面向对象程序设计语言,具有而向对彖、与平台无关、多线程以及强大 的网络编程功能等特点。随着计算机的飞速发展,人们的生活发生了很大的变化,而网上聊天也成了人们爱好 网络的原因z-o计算机的普及给我们的学习、生活和工作带来了方便,软件和硬件技术 已经应用到教学上,各地
4、的教育培训基地也很多,但是这给我们提出了更髙的要求,更需 要我们在这方面付出更多的努力,培育出更多的it人才。网络聊天在当今己经不算什么新鲜事物,但大多数网络聊天都需要借助于internet的 服务器,这就给那些具有大规模内部网络的用户造成了不便,岀于安全等的考虑,通常这 些内部网络不能直接连接到internet ±o我设计的聊天室,提供了类似于常见聊天室的功 能,更重要的是可以在局域网内部使用,只需要稍加改进,便可以应用于架设企业内部的 聊天室,方便员工之间的沟通。本聊天室系统主耍讨论了 windows环境下的局域网聊天程序的设计思路和设计方法, 运用java语言编程,其屮网络通信
5、部分采用流行的tcp/ip协议,程序采用典型的c/s (客 户端/服务器)架构。用socket编程设计网络通信。本文最终设计了一个简易的聊天软件, 包括注册、登录、添加好友、删除好友、消息收/发等功能。第1章java的网络功能与编程1.1 java的网络功能与编程1. 1. 1 java 概述java是一个由sun公司开发而成的新一代编程语言。使用它可在各式各样不同种机 器、不同种操作平台的网络环境屮开发软件。不论你使用的是哪一种www浏览器,哪 一种计算机,哪-种操作系统,只要www浏览器上面注明了 “支持java",你就可以 看到生动的主页。java正在逐步成为internet应
6、用的主要开发语言。java虽出现的时间不长,但己被业界接受,ibm、apple. dec、adobe、silicon graphicshp、oracle> toshiba nets cap和 microsoft 等大公司已经购买了 java 的 许可证。microsoft还在其web浏览器explorer3.0版屮增加了对java的支持。另外,众多的软件开发商也开发了许多支持java的软件产品。女口: borland公司的 基于java的快速应用程序开发环境latte; metrowerks公司和natural intelligence公司 分别开发的基于macintosh的java开发
7、工具;sun公司的java iff发环境java workshop; microsoft也开发出系列java产品等。internet正在成为企业信息系统最佳的解决方案。它的优点表现在:便宜、易于使用 和管理。用户不管使用何种类型的机器和操作系统,界面是统一的web浏览器,而数据 库、web页面、应用程序(用java编的applet)则存在www服务器上。开发人员只 需维护一个软件版本,管理人员省去了为用户安装、升级、培训之苦,用户则只需一个操 作系统,一个internet浏览器足矣。随着internet的崛起、java的诞生,巨型的、臃肿的应用软件开始向小型化发展, 由众多“生活”在inter
8、net ±的小应用程序(applet)相互协作完成信息的处理与传递。 java会加速应用软件的小型化、网络化的趋势。随着internet的发展,软件必然是面向 “大众”,而不是“少数人”的箸侈品,薄利多销将是网络应用软件的重耍特点。java 连同internet. www正在改变应用软件的开发和使用方式,一切都要围绕着网络,围绕 着平台无关。1. 1. 2 java的特点(-)java的主要特点java语言有下而一些特点:简单、而向对彖、分布式、解释执行、鲁棒、安全、体 系结构中立、可移植、高性能、多线程以及动态性。1简单性java语言是一种面向对象的语言,它通过提供最基木的方法来完
9、成指定的任务,只 需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。java略去了运算 符重载、多重继承等模糊的概念,且通过实现口动垃圾收集大大简化了程序设计者的内存 管理工作。另外,java也适合于在小型机上运行,它的基本解释器及类的支持只有40kb 左右,加上标准类库和线程的支持也只有215kb左右。库和线程的支持也只有215kb 左右。2血向对象java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。 对象屮封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类则提供了一 类对象的原型,并且通过继承机制,子类可以使用父类所捉供的方法,实现了代码
10、的复用。3. 分布性java是面向网络的语言。通过它提供的类库可以处理tcp/ip协议,用户可以通过 url地址在网络上很方便地访问其它对象。4詹棒性java在编译和运行程序时,都要对可能出现的问题进行检杳,以消除错误的产生。 它提供口动垃圾收集來进行内存管理,防止程序员在管理内存时容易产生的错误。通过集 成的面向对象的例外处理机制,在编译时,java提示出可能出现但未被处理的例外,帮 助程序员正确地进行选择以防止系统的崩溃。另外,java在编译时还可捕获类型声明中 的许多常见错误,防止动态运行时不匹配问题的出现。5 安全性用于网络、分布环境下的java必须要防止病毒的入侵。java不支持指针
11、,一切对 内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用“特洛伊”木马 等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。6体系结构中立java解释器生成与体系结构无关的字节码指令,只要安装了 java运行时系统,java 程序就可在任意的处理器上运行。这些字节码指令对应于java虚拟机中的表示,java 解释器得到字节码厉,对它进行转换,使之能够在不同的平台上运行。7. 可移植性与平台无关的特性使java程序可以方便地被移植到网络上的不同机器。同时,java 的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,java编译器是由java 语言实现的,
12、java运行时系统由标准c实现,这使得java系统本身也具有可移植性。8. 解释执行java解释器直接对java字节码进行解释执行。字节码本身携带了许多编译时信息, 使得连接过程更加简单。9高性能和其它解释执行的语言(如basic)不同,java字节码的设计使之能很容易地直接 转换成对应于特定cpu的机器码,从而得到较高的性能。10.多线程多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。 通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需耍采用全局 的事件循环机制,这样就很容易地实现网络上的实时交互行为。门动态性java的设计使它适合于一个不断发展的
13、环境。在类库中可以口由地加入新的方法和 实例变量而不会影响用户程序的执行。并ji. java通过接口來支持多重继承,使之比严格 的类继承具有更灵活的方式和扩展性。(-)java提供了丰富的类库以满足网络化、多线程、面向对象系统的需要。1语言包提供的支持包括字符串处理、多线程处理、例外处理、数学函数处理等,可 以用它简单地实现j ava程序的运行平台。2实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和h期等。3输入输出包用统一的”流”模型来实现所有格式的i/o,包括文件系统、网络、输入。4. 低级网络包用于实现socket编程。5抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件,
14、包括窗口、 菜单、滚动条、对话框等,使得java可以移植到不同平台的机器。6网络包支持internet的tcp/ip协议,提供了与internet的接口。它支持url连接, www的即时访问,并且简化了用户/服务器模型的程序设计。(三)java和c、c+对于变量声明、参数传递、操作符、流控制等,java使用了 和c、c+相同的传统,使得熟悉c、c+的程序员能很方便地进行编程。同时,java 为了实现其简单、鲁棒、安全等特性,也摒弃了 c和c+中许多不合理的内容。1 全局变量java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静 态的变量来实现一个全局变量。例如:class
15、globalvarf public static global_var;在类globalvar中定义变量global_var为public static,使得其它类可以访问和修改 该变量。java对全局变量进行了更好的封装。而在c和c+中,依赖于不加封装的全局 变量常常造成系统的崩溃。2. gotojava不支持c、c+中的goto语句,而是通过例外处理语句try、catch> final等来 代替c、c+中用goto来处理遇到错误时跳转的情况,使程序更可读且更结构化。3 指针指针是c、c+中最灵活,也是最容易产生错误的数据类型。由指针所进行的内存地 址操作常会造成不可预知的错误,同时通
16、过指针对某个内存地址进行显式类型转换后,可 以访问一个c+中的私有成员,从而破坏安全性,造成系统的崩溃。而java对指针进行 完全的控制,程序员不能直接进行任何指针操作,例如把整数转化为指针,或者通过指针 軽放某一内存地址等。同时,数组作为类在java中实现,良好地解决了数组访问越界这 一 c、c+屮不作检查的错误。4. 内存管理在c中,程序员通过库两数malloc()和free()来分配和释放内存,c+中则通过运 算符new和delete來分配和释放内存。再次释放已释放的内存块或未被分配的内存块会 造成系统的崩溃;同样,忘记释放不再使用的内存块也会逐渐耗尽系统资源。而在java 中,所有的数
17、据结构都是对象,通过运算符new为它们分配内存堆。通过new得到对象 的处理权,而实际分配给对象的内存可能随程序运行而改变,java对此自动地进行管理 并且进行垃圾收集,有效防止了由于程序员的误操作而导致的错误,并且更好地利用了系 统资源。5. 数据类型的支持在c、c+中,对于不同的平台,编译器对于简单数据类型如int. float等分别分配 不同长度的字节数,例如:int在ibmpc中为16位,在vax-11中为32位,这导致了 代码的不可移植性,但在java中,对于这些数据类型总是分配固定长度的位数,如对int 型,它总占32位,这就保证了 java的平台无关性。6. 类型转换在c、c+屮
18、,可以通过指针进行任意的类型转换,常常带來不安全性,而java屮, 运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换。7 头文件c、c+中用头文件来声明类的原型以及全局变量、库函数等,在大的系统中,维护 这些头文件是很困难的。而java不支持头文件,类成员的类型和访问权限都封装在一个 类中,运行时系统对访问进行控制,防止对私有成员的操作。同时,java中用import语 句来与其它类进行通讯,以便使用它们的方法。8 结构和联合c、c+中的结构和联合中所有成员均为公有,这就带來了安全性问题。java中不 包含结构和联合,所有的内容都封装在类中。9. 预处理c、c+屮用宏定义来实现的
19、代码给程序的可读性带來了困难。在java屮不支持宏, 它通过关键字final来声明一个常量,以实现宏定义中广泛使用的常量定义。1.1.3 java语言的应用前景java语言有着广泛的应用前景,大体上可以从以卜几个方面來考虑其应用:1所有而向对象的应用开发,包括面向对象的事件描述、处理、综合等;2计算过程的可视化、可操作化的软件的开发;3动态画面的设计,包括图形图像的调用;4交互操作的设计(选择交互、定向交互、控制流程等);5 internet的系统管理功能模块的设计,包括web页而的动态设计、管理和交互操 作设计等;6 internet (企业内部网)上的软件开发(直接面向企业内部用户的软件)
20、;7与各类数据库连接查询的sql语句实现;8其他应用类型的程序。1.2 ip/tcp协议常识(1) ip、tcp协议的特点:tcp/ip (transmission control protocol/lnternet protocol)是传输控制协议/网际协议 的缩写,tcp/ip是当今网络互联的核心协议。tcp/ip协议的体系结构共有四个层次,即 应用层、传输层、网络互联层和网络接口层。ip协议的作hl第一,它是网络层的协议,提供互联网上数据传输的统一格式。第 二,提供不可靠的无连接的服务。第三,定义了互联网上的传输数据的基本单元,提供了 供路由选择的信息,没有差错校验和处理的机制。tcp协
21、议的功能:差错控制可靠性、面向连接、分段(segment)、端口号。 tcp是传输控制i办议,是而向连接的提供了一种可靠的传输服务,它用三次握手和滑动 窗口机制来保证传输的可靠性,及进行流量控制。tcp/ip协议具有以下特点:1、协议标准具有开放性,其独立于特定的计算机硬件及操作系统,可以免费使用。2、统一分配网络地址,使得侮个tcp/ip设备在网络中都具有唯一的ip地址。3、实现了高层协议的标准化,能为用户提供多种可靠的服务。(2) tcp/tp协议进行传输数据传输的过程:应用程序为了传输数据会调用tcp,将数据和对应的参数传给tcp,将tcp数据包 封装在ip包内,通过网络送给目的tcpo
22、接l|妨tcp在接收到数据后通知上层应用程序, tcp将保证接收数据的正确性。在实现tcp的主机上,tcp可以被看成是一个模块,和 文件系统区别不大,tcp也可以调用一些操作系统的功能,tcp不直接和网络打交道, 控制网络的任务由专门的设备驱动模块完成。tcp只是调用ip接口,向tcp提供所有 tcp需要的服务。(3) 端口号:有的时候,一个ip地址不能完整的标识一台服务器,这是因为一台物理性的计算机 同时运行着多个应用程序,这就需要我们來区别同一台机了上的不同服务,所以就在传输 层和应用层上设置接口,就是端口。端口实际是一个16位长的地址,范围是065535 之间,其中01023是熟知端口,
23、主要是给提供服务的应用程序使用,这些端口是所有应 用进程都知道的,102465535为一般端口,也称动态端口、连接端口,用来随时分配耍 求通信的客户端应用程序。在数据传输过程中,各种服务器一边不断的检测分配给它的端 口,一边发现要求和它通信的客户端。第2章规划设计2. 1课题来源根据当前网络的需求,网络聊天越来越受各种网民所青睐。因此开发网络聊天是相当 有必耍,而且在网站内增加聊天功能,它不仅可以提高网站的访问量,同时可以留着访客, 更重要的是让访客透过聊天室实时的互相交流。而木人也学习过java语言,对网络编程 也较有兴趣,为了更好的考验自己对java语言的掌握程度,木人就决定以局域网聊天
24、室的设计与实现为毕业设计,希望通过这一次的设计能进一步提高本人的网络编程的能 力。2. 2需求分析聊天系统不外乎两个方面,服务器端和客户端。简单分析一下两个方面所要完成的任 务,对设计这个程序來说,等于完成了一半。首先來看一下服务器端的任务:1. 服务器端应当建立一个serversocket,并月不断进行侦听是否有客户端连接或者 断开连接(包括判断没有响应的连接超时)o2服务器端应当是一个信息发送中心,所有客户端的信息都传到服务器端,曲服务器 端根据要求分发信息。以上就是服务器端最主要的两个任务。不难看出,服务器端的任务并不复杂。客户端应该完成的工作包括:1 与服务器端建立通信通道,向服务器端
25、发送信息。2. 接收來口服务器的信息。相对服务器而言,客户端的任务更加简单,有了以上的简单分析,可以知道,解决上 述四个问题,即完成了该聊天系统的核心。以下为服务器端和客户端的界面:(图2-1)服务器(图2-2)客户端2. 3研究价值第3章系统分析与设计方案3. 1聊天系统的总体设计要点聊天系统的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素, 例如,普通网站需要对布局进入大量美化以及动画设计等等,而聊犬室只要提供满足访客 双方直接实时聊天即可。因此,在设计聊天系统的过程屮,必须要考虑好以下儿个设计要 占八、1. 实现思想在internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端 程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信 过程。因此,程序要在tcp/ip环境下,实现服务器端和客户端两部分程序。2. 服务器端工作流程服务器端通过socket()系统调用创建一个socket数组后(即设定了接受连接客户的最 大数目),与指定的本地端口绑定bind(),就可以在端口进行侦听listen()o如杲有客户端 连
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院满意度培训
- 光伏发电培训资料
- 福建省莆田市涵江区实验小学2023-2024学年三年级上学期期末检测数学试题
- T-XMSSAL 0110-2024 供厦食品 芦笋
- 期中模拟试卷(1-4单元) (试题)-2024-2025学年六年级上册数学北师大版
- 语文学习任务群的解读及设计要领
- 余静无机化学酸碱平衡
- 部编版六年级语文上册第七单元《京剧趣谈》教学课件
- 高中语文第11课师说课件5新人教版必修
- 路基石方填筑试验路段施工总结-
- 《外科缝合术》教学课件
- 小学数学西南师大三年级上册四两位数除以一位数的除法 两位数除以一位数的除法问题解决
- 无机及分析化学考试题(附答案)
- 一年级数学找规律练习题
- 农业生态学全套课件
- 普通高校大学生信息素养大赛考试题库(浓缩500题)
- 湘教湘科版科学(2017)六年级上册期中测试卷及答案
- 模板支撑体系工程施工方案
- 部编版五年级上册语文阅读理解及答案
- 江苏省苏州市各县区乡镇行政村村庄村名居民村民委员会明细
- 整体道床施工作业指导书模板
评论
0/150
提交评论