局域网内即时通讯系统的设计与实现.doc
《局域网内即时通讯系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《局域网内即时通讯系统的设计与实现.doc(39页珍藏版)》请在沃文网上搜索。
1、 摘要互联网诞生于传统的电话网络,通讯交流可以说是互联网天然的应用之一。Internet是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体。随着网络通信技术和计算机技术的进一步发展,即时通信正在成为网络在线活动中不可缺少的业务。近年来计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面。Socket是TCP/IP协议的编程接口,利用Socket提供的一组API就可以编程实现TCP/IP协议。本文论述了使用J包与Java.awt包提供的类和接口,开发了一款即时通讯系统“LanMessage”,可实现点对点的文字聊天、群发消息、文件传
2、输等功能,经测试,系统基本达到预期的设计目标。关键词:Java,局域网,即时通讯,TCP/IPABSTRACTInternet was born in the traditional telephone network while communication exchange can be said of the Internet natural one. Internet is now the worlds largest computer Internet, it spread globally, of all sizes around the world connects to the
3、network as a whole. With the network communication technology and the further development of computer technology, instant communication network online activities are becoming indispensable to business. In recent years, computer technology is developing rapidly, in particular the development of compu
4、ter networks, increasingly profound changes in all aspects of peoples lives. Socket is the Programming Interface of TCP/ IP , namely using a set of API , offered by Socket , programming to realize TCP/ IP. This paper takes use of the class and interface of J packets and Java. awt packet, using JDK6.
5、0. developed instant communications software LanMessage. The software include client, the client has a general communications software functions, including: point-to-point text chat function, file transfer function,Mass function, After testing the basic system design to achieve the desired objective
6、s.Keywords: Java, Lan, Instant communication, TCP / IP 目录摘要IABSTRACTII第1章 引言11.1 背景11.2JAVA以及相关技术21.2.1 Java的由来与定义21.2.2 Socket41.2.3 Java编译工具NetBeans41.3 论文的组织结构51.4 本章小结5第2章 系统实现的相关知识62.1通信协议与模型62.1.1 OSI模型62.1.2 TCP/IP协议72.1.3 TCP协议与UDP协议的比较92.2 基于Socket通信的基本应用模式92.2.1 Socket的基本通讯模式92.2.2 Java So
7、cket传输模式112.3 Socket连接的过程112.4 双方之间的网络连接132.4.1 使用Java控制UDP协议132.4.2 在Java中操作UDP132.5 本章小结14第3章 系统的需求分析与设计153.1需求分析153.1.1 功能需求153.1.2程序界面设计153.2 总体设计163.2.1 系统结构设计163.2.2 系统功能模块设计163.3 本章小结17第4章 详细设计184.1 主要功能模块184.1.1 系统主界面184.1.2 文字聊天模块204.1.3 文件传输模块224.2 其他功能模块284.2.1查看本地IP284.2.2添加黑名单模块284.2.3添
8、加好友列表模块304.2.4退出模块314.3 本章小结32第5章 结束语33致谢34参考文献3535第1章 引言随着计算机网络日新月异的发展,人们的交流方式越来越多,传统的交流方式,如:信件、电报、电话等已经难以满足人们的交流要求,在互联网上即时的和好友取得联系,已经成为当今社会人们主流的联系方式。因此,两台计算机之间进行即时通讯、发送文件等交流方式已经成为必然潮流。因此出现了QQ等聊天工具,然而QQ等聊天工具虽然方便、实用,但是,娱乐功能太多,有很多吸引人的娱乐功能,从一定程度上来说,是一种娱乐工具,不能作为用于即时通讯、文件共享的专用工具1。目前,用于实现单一的即时通讯、文件共享的软件实
9、在太少,而且,它们中大部分都是绝对的C/S模式,对远程服务器有非常大的依赖性,对应用有着很大的局限性,没有彻底实现点对点的交流。为此,决定开发一个专用于实现两台计算机或者多台计算机之间即时通讯、文件共享的传输,以方便两台或者多台计算机之间信息的交流。本软件属于点对点连接的,在连接并通信时,尤其是近程的即时通讯,彻底的脱离了远程的服务器,避免了和远程服务器连接时过多的浪费网络资源。并且避免了服务器忙或与服务器无法连接时,浪费过多时间用于和服务器建立连接。因此,这个软件是极具适应性和实用性的即时通讯软件。1.1 背景 电子邮件就是最重要的通讯交流工具,是互联网最早的通讯交流工具。此后兴起的网络论坛
10、和网络聊天室都是网络聊天的前身。但是,个人对个人的网络聊天真正崛起还是需要从ICQ的开始。ICQ产品最早的创始人是三个以色列青年,是他们在1996年做出来的,取名叫ICQ。1998年当ICQ注册用户数达到1200万时,被AOL看中,以2.87亿美元的天价买走。目前ICQ有1亿多用户,主要市场在美洲和欧洲,已成为世界上最大的即时通信系统。这是一款网络即时讯息传呼软件,支持在互联网上面各种聊天、发送文件等功能。在网络无所不在的今天,在Internet上,有QQ等网上寻呼软件,极大程度上方便了处于在世界各地的友人之间的相互联系,也使世界好像一下子缩小了,不管你在哪里,只要你上了网,打开这些软件,就可
11、以给你的朋友发信息,不管对方是否也同时在线,只要知道他有号码。网上寻呼软件在国外的有ICQ等,在国内的主要有腾讯的Oicq,还有Ticq,OmO和一些在网页上的即时通讯工具,像Chinaren网站上的WebMaster等等,都做得即美观,且功能强大,Oicq(QQ)非常大的用户群。目前全球已有20%的企业采用IM进行信息通信和文件共享。据权威人士预瞻,到2008年,全球将有80%的企业会采用即时通信软件来代替费用高昂的电话、传真等通信方式。这将是一个非常庞大的市场和财富。强大的网络聊天工具如QQ,MSN等软件占据了一定是市场,俨然成为当今社会人们主流的联系方式。但是这些聊天工具虽然方便、实用,
12、但是,有个最不好的确定就是功能太多,有很多吸引人的娱乐功能,从一定程度上来说,是一种娱乐工具,不能作为用于作为即时通讯、文件共享的专用工具。而也有很多企业与公司都把QQ,MSN作为公司内部禁止使用的软件之一。这样必然会造成一个问题就是,当公司或者企业内部人员需要相互交流或者传输资料文件的时候,必须采用最原始的办法,用U盘相互拷贝,对文件以及电脑有着极大的危害。所以,我想设计一个能用于局域网之间的用来完成点对点通讯与传输文件的即时通信软件工具。即时通信,是以Internet网络及其它有线、无线网络为基础,实现交互双方文字、文件、语音等信息实时传送的通信过程。目前,用于实现这种单一的即时通讯、文件
13、共享的软件实在太少,并且,它们中大部分都是的C/S模式,对远程服务器有非常大的依赖性,没有彻底实现点对点的交流。为此,我选择这一课题,并且决定所开发的软件应属于点对点连接的,这样在连接并通信时,尤其是近程的即时通讯,可以彻底的摆脱对远程的服务器的依赖,避免和远程服务器连接时过多的浪费网络资源。同时还可以避免服务器忙或与服务器无法连接时,浪费过多时间用于和服务器建立连接!因此我基本上确定了开发的目标和方向。1.2JAVA以及相关技术1.2.1 Java的由来与定义 在Java出现以前。Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他
14、们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本2。Java是一种简单的,面象对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。Java的开发环境有不同的版本,如sun公司的Java Developers Kit,简称JDK。Java的特点如下1) 平台无关性平台无关
15、性是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。 2) 安全性 Java的编程类似C+,学习过C+的读者将很快掌握Java的精髓。Java舍弃了C+的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指 针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。 3) 面向对象Jav
16、a 吸取了C+面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java 提供了众多的一般对象的类,通过继承即可使用父类的方法。在 Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java 提供的Object 类及其子类的继承关系如同一棵倒立的树形,根类为 Object 类, Object 类功能强大,经常会使用到它及其 它派生的子类。4) 分布式Java建立在扩展TCP/IP网络平台上。库函
17、数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。5) 键壮性Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这些功能特征大大提高了开发Java应用程序的周期。Java提供:Null指针检测、数组边界检测、异常出口、Byte code校验。1.2.2 Socket所谓Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求3。 Socke
18、t和Server Socket类库一般位于J包中。Server Socket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是Server Socket它们的工作都是通过SocketImpl类及其子类完成的。1.2.3 Java编译工具NetBeansNetBeans由Sun公司在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的Java IDE。NetBeans当前可以
19、在Solaris、Windows、Linux和Macintosh OS X平台上进行开发,并在SPL(Sun公用许可)范围内使用。 NetBeans是一个全功能的开放源码Java IDE,可以帮助开发人员编写、编译、调试和部署Java应用,并将版本控制和XML编辑融入其众多功能之中。NetBeans 可支持Java 2平台标准版(J2SE)应用的创建、采用JSP和Servlet的2层Web应用的创建,以及用于2层Web应用的API及软件的核心组的创建。此外,NetBeans 最新牒还预装了两个Web服务器,即Tomcat和GlassFish,从而免除了繁琐的配置和安装过程。所有这些都为Java
20、开发人员创造了一个可扩展的开放源多平台的Java IDE,以支持他们在各自所选择的环境中从事开发工作,如Solaris、Linux、Windows或Macintosh。而最重要的原因是因为NetBeans是与Sun公司开发,这意味这NetBeans跟Java有着良好的兼容性。而其友好的操作界面跟可视化的GUI界面的操作使得软件开发如虎添翼。1.3 论文的组织结构本文共分为四章第一章介绍了局域网即时通讯的背景,发展前景以及编写的语言进行简单的阐述。第二章介绍了编写程序所需要的相关知识与关键技术,对设计中用的一些相关知识与技术进行介绍和阐述,便于理解后续章节里系统的设计和实现。第三章具体阐述了即时
21、通信系统的设计和实现,对系统的需求进行分析,构思出设计方案,然后对怎样使用Java来实现网络通信的进行阐述。第四章为结论,是对论文的研究结果进行自我总结和评价,同时,总结了系统设计中的不足和缺陷,并提出将来发展的趋势。1.4 本章小结本章介绍了构建“局域网内即时通讯技术”的背景和意义,以及课题的任务,确定编写程序所用的语言。简明的阐述了编程语言的优越性,并合理安排论文结构,较为清晰规划出全文脉络。第2章 系统实现的相关知识2.1通信协议与模型2.1.1 OSI模型OSI(Open Systems Interconnection),即开放式通信系统互联参考模型,是国际标准化组织(ISO)提出的一
22、个试图使各种计算机在世界范围内互连为网络的标准框架4。OSI定义了开放系统的层次结构、层次之间的相互关系以及各层所包括的可能的任务,它本身并不是一个标准,而是一个在制定标准时使用的概念性框架,是作为一个框架来协调和组织各层所提供的服务的。在单台机器中,每一层通过两层间的层间接口调用下一层的服务,取出对该层有意义的数据;机器之间则是使用某个给定层的协议的对等进程进行通信。这种通信由一些协议来控制,协议就是实现双方都同意的一组规则和约定。对等进程是指每一个机器的某个给定层上进行通信的进程。2.1.2 TCP/IP协议TCP/IP(Transmission Control Protocol/Inte
23、rnet Protocol),即传输控制协议/互联网络协议,是美国的国防部高级计划研究局DARPA为实现ARPANET(后来发展为Internet)互联网而开发的。该协议是Internet国际互联网络的基础和事实上的标准,其规范了网络上的所有通信设备,尤其是两台主机之间的数据往来格式以及传送方式。TCP/IP协议由应用层、传输层(TCP)、网络层(IP)和数据链路层(包括物理层)四层组成,与OSI模型的对应关系如图2-1所示。DNSFTPRPC 各种应用程序层应用层UDP表示层会话层TCP传输层RARPIPICMPARPIGMP网络层由底层网络协议定义的协议数据链路层物理层SMTP图2-1 T
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
15 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 局域网 即时通讯 系统 设计 实现