基于Java的局域网飞鸽传书软件的设计与实现.pdf
《基于Java的局域网飞鸽传书软件的设计与实现.pdf》由会员分享,可在线阅读,更多相关《基于Java的局域网飞鸽传书软件的设计与实现.pdf(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 I 【摘 要】为了方便内部网络的用户之间的沟通,我们需要开发一个基于局域网的信息共享工具。本课题设计主要针对局域网通讯而开发设计的,采用的是 C/S 构架,类似飞鸽传书系统,来实现聊天、文件传输功能。本设计以 JAVA 编写,能在 windows 2000/net/xp 等环境下运行。设计共分为五大部分,分别是:1.选题背景及意义和国内外研究现状;2.TCP/IP 点对点协议技术,C/S 架构和 SOCKET 网络编程技术;3.对系统进行需求分析并提出解决方案;4.根据解决方案设计系统;5.测试系统并得到测试结果。【关键词】聊天 传输 socket 飞鸽传书 C/S 结构 JAVA II D
2、esign and Implementation IP Messenger Based on LAN and Java Technology 【Abstract】In order to facilitate internal communication between network users,we need to develop one tool to share information.This topic design mainly aims at the local area network communication,use the C/S structure,like IP me
3、ssenger,for chat and files transmission.This system is developed by JAVA and can run in the invironment of windows 2000/net/xp.The design altogether divides into five big parts,respectively is:1.Selected topic background and significance,domestic and foreign research present situation;2.TCP/IP point
4、 to point protocol technology,C/S structure and socket network programming technology;3.Analyze the demand of this system and propose the solution;4.According to the solution we design the system;5.Test the system and obtains the test result.【Key words】chat transmission socket IP messenger C/S struc
5、ture java III 目 录 绪论.1 1 研究内容.2 1.1 TCP/IP.2 1.2 主要研究思路和方法.3 1.3 研究系统的目的以及意义.3 1.4 JAVA SOCKET.3 2 系统需求分析.9 2.1 系统设计目标.9 2.2 系统总体需求分析.9 2.3 组织结构的分析.9 2.3.1 开发运行环境.10 2.3.2 系统开发语言.10 3 系统开发分析.11 3.1 C/S 软件架构技术.11 3.2 用户数据报协议(UDP).11 3.3 单播、广播、组播浅析.11 4 系统设计.13 4.1 文字聊天模块的整体构架.13 4.2 文件传输模块的主要流程图.13 4
6、.3 系统主要功能模块.14 4.3.1 系统的主登录界面.14 4.3.2 文字聊天信息的封装.16 4.3.3 文件传输的界面.18 5 系统测试.24 5.1 测试环境.24 5.2 测试结果.24 结 论.27 参考文献.28 附 录.29 致 谢.错误!未定义书签。1 绪论 当人类进入到崭新的 21 世纪后,网络通讯在当今已不算新鲜事物,当今世界的主题也转变为了以知识和信息为主的新时代。信息的需求量和运算量的不停增加,使得计算机通信技术有了突飞猛进的变化。网络的使用频率和使用的范围都越来越广泛,但是人们使用网络的用途主要有两个:(1)相互之间的沟通,(2)资源共享。局域网作为网络的一
7、个重要组成部分,它不但是用户与外界环境连接的枢纽,同时也是近距离用户之间沟通与资源共享的一个重要途径。在这种前提下,如何使局域网内的用户能够进行便捷的沟通,以及得到快速的资源共享,也就成为了人们研究网络问题的重点之一。目前大多数网络通讯都需要借助 Internet 上的服务器,这就给那些具有大规模内部网络的用户造成许多问题,如浪费网络资源、遭到网络攻击、传播病毒、破坏防御系统等等。互连网上的网络通讯工具给企业内部信息交流带来了不便,所以为了方便内部网络用户之间的沟通,需要开发一个基于局域网的信息收发系统的即时通讯工具,实现内部网络的信息交流。本系统是参考目前比较流行的局域网即时通讯软件“飞鸽传
8、书”的基础上开发设计的,是一个局域网内的通迅工具,主要通过 socket完成。它据有的主要功能有以下两点:(1).局域网内用户间简单的文字聊天功能。(2).局域网内用户间相互的文件、文件夹传输。2 1 研究内容 1.1 TCP/IP 随着计算机技术和通讯技术的飞速发展,计算机网络化已经渗透到各行各业,尤其是以 TCP/IP 协议之间的网络互连发展速度很快,计算机应用系统的开发方向已经由传统的单机方式转向到了网络环境的开发。网络之间每台计算机进行数据通讯时,都是使用具体地址来标识网络中的计算机,只有有了地址以后,数据才会准确地发送到地址所指向的计算机。TCP/IP 协议使用 IP 地址为网络中计
9、算机的标识,而且每台计算机的 IP 地址是唯一的,一般情况下,每台计算机运行的程序不止一个,因此要在应用程序中建立连接的话,还需要一个地址标识。11 TCP/IP 传输控制协议/网际协议,是 internet 最基本的协议。供已连接因特网的计算机进行通信的通信协议。TCP/IP 在私网中,它也被用作通信协议。当你直接网络连接时,你的计算机应提供一个 TCP/IP 程序的副本,此时接收你所发送的信息的计算机也应有一个 TCP/IP 程序的副本。TCP/IP 是一个两层的程序。高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。这些包通过网络传送到接收端的TCP 层,接收端的 TCP 层把包
10、还原为原始文件。低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。网络上的网关计算机根据信息的地址来进行路由选择。即使来自同一文件的分包路由也有可能不同,但最后会在目的地汇合。TCP/IP 使用客户端/服务器模式进行通信。TCP/IP 通信是点对点的,意思是通信是网络中的一台主机与另一台主机之间的。在 TCP/IP协议中使用了端口(PORT)作为计算机上运行的应用程序的标识,因此 TCP/IP 协议中一个有效的网络地址包括 IP 地址和端口地址两个部分。TCP/IP 协议提供两种计算机之间进行通讯的方式:TCP 方式和 UDP 方式。11 TCP 是当应用程序要得到完整且可信赖
11、的数据时所采用的传输控制协议,是一种面向连接的服务,TCP 会在传输的过程中多了许多确认的动作以确定数据的正确性。在文件传输时会先行建立连接,通过链接提供双向、有序且无重复的数据流服务、以及流量控制、差错检测和纠错等服务,从而确保文件传输的正确性;而 UDP 比起 TCP 是要简单许多,UDP是一种无连接的服务,它在传输文件时不会确保传输端的文件能够正确无误的传送到接收端,所以 UDP 传输数据通常会遗失却不见得再重新传输一次,所以当使用 UDP 时,通常要自己作接收确认的工作。因此使用 UDP 的应用程序着重于简洁和效率以完成工作,它不需要像 TCP 一般复杂的手续就可以达到交换信息的目的。
12、11 飞鸽传书是由日本人 Shirouzu Hiroaki 发明的免费软件,是一款局域网内基于 TCP/IP(UDP)的即时通信软件。该软件不需要服务器支持可运行于多种操作平台(Win/Mac/UNIX/Java),并实现跨平台信息交流。该软件支持文件/文件夹的传送,目前已有的版本包括:Win32,Win16,MacOS,MacOSX,X11,GTK,GNOME,Java 等,并且公开源代 3 码。飞鸽传书目前最新版本是飞鸽传书 2010,绿色软件,体积小巧,无需安装。它支持文字通讯,文件(夹)传输,语音视频,远程控制等多媒体功能。具有群聊、多人语音、多人视频、网络会议室等专业即时通讯软件功能
13、。可局域网用户自动搜索,也可架设服务器进行统一管理。局域网,互联网均可使用,内外网互通,可与联信 UM/Gmail/Jabber 等 XMPP标准通信服务器互通。飞鸽传书中文版 Ver2.06 由阿志于 2004 年 11 月制作,是一款飞鸽传书的经典版本。它支持局域网文字通讯,文件(夹)传输局域网用户自动搜索,简单快捷,仅适用于局域网使用。10 1.2 主要研究思路和方法 本系统的开发采用基于 Java socket 的广播发送模式,进行文字聊天和文件、文件夹传输的设计与开发。因此,本设计首先分析该系统的相关功能,结合本设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识,选择所熟悉
14、的开发工具进行本设计的开发;在设计中以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法;最后,在系统开发完毕后,进行调试和运行,做好调试和运行的相关记录。1.3 研究系统的目的以及意义 随着互联网技术的迅猛发展,网络给人们带来了非常多的便利,比如人们借助于网络进行相互交流已经变得越来越方便。聊天工具作为互联网中运用最为广泛的通信工具之一,如今都已被广大网民所接受和喜爱。很多人都使用过飞鸽传书软件,尤其对于需要在局域网内进行大量数据传输的人来说,飞鸽传书软件备受亲睐。飞鸽传书发展到现在已经具有了很多功能:有文字聊天、文件、文件夹传输的基本功能,也有密封、加锁等较为复杂的功能。本毕业
15、设计的目的主要是为了检查使学生综合运用以前所学知识(包括以前所学的一些关于网络、编程、信息安全等知识)的能力,模拟局域网飞鸽传书软件,开发一个基于Java 的飞鸽传书局域网通信软件,本毕业设计主要实现局域网内文字聊天及文件传输等功能。本设计中程序用 Java 编写,能在 Windows 2000/net/xp 等环境下运行。主要研究的内容有:TCP/IP 点对点协议技术,C/S 架构和 SOCKET 网络编程技术,对当前局域网文件传输进行需求分析并提出解决方案和对解决方案进行设计,完成局域网内用户间文字聊天功能,完成局域网内用户间相互的文件、文件夹传输功能,对工作计划统计以及分析系统进行测试并
16、得到测试结果。10 1.4 Java Socket socket 通常也称作套接字,用于描述 IP 地址和端口,是一个通信链的句柄。应用程序通常通过套接字向网络发出请求或者应答网络请求。以 J2SDK-1.3 为例,Socket 和 ServerSocket 类库位于 包中。ServerSocket 4 用于服务器端,Socket 是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个 Socket 实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是 Socket 还是 ServerSocket 它们的
17、工作都是通过 SocketImpl 类及其子类完成的。重要的 Socket API:.Socket 继承于 java.lang.Object,有八个构造器,其方法并不多,下面介绍使用最频繁的三个方法。.Accept 方法用于产生阻塞,直到接受到一个连接,并且返回一个客户端的 Socket对象实例。阻塞是一个术语,它使程序运行暂时停留在这个地方,直到一个会话产生,然后程序继续;通常阻塞是由循环产生的。.getInputStream 方法获得网络连接输入,同时返回一个 IutputStream 对象实例,。.getOutputStream 方法连接的另一端将得到输入,同时返回一个 OutputSt
18、ream 对象实例。例如开发一个 Server-Client 模型的程序。它的开发原理如下:服务器:使用 ServerSocket 监听指定的端口,端口可以随意指定(由于 1024 以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于 1024 的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。客户端:使用 Socket 对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭 Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个 1024 以上的端口。建立服务器 import .*;import j
19、ava.io.*;public class Server private ServerSocket ss;private Socket socket;private BufferedReader in;5 private PrintWriter out;public Server()try ss=new ServerSocket(10000);while(true)socket=ss.accept();in=new BufferedReader(new InputStreamReader(socket.getInputStream();out=new PrintWriter(socket.ge
20、tOutputStream(),true);String line=in.readLine();out.println(you input is:+line);out.close();in.close();socket.close();ss.close();catch(IOException e)6 public static void main(String args)new Server();这个程序建立了一个服务器,它一直监听10000 端口,等待用户连接。在建立连接后给客户端返回一段信息,然后结束会话。这个程序一次只能接受一个客户连接。客户端:使用 Socket 对网络上某一个服务器的
21、某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭 Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个 1024 以上的端口。建立客户端 import java.io.*;import .*;public class Client Socket socket;BufferedReader in;PrintWriter out;public Client()7 try socket=new Socket(xxx.xxx.xxx.xxx,10000);in=new BufferedReader(new InputStreamReader(socket.getInpu
22、tStream();out=new PrintWriter(socket.getOutputStream(),true);BufferedReader line=new BufferedReader(new InputStreamReader(System.in);out.println(line.readLine();line.close();out.close();in.close();socket.close();catch(IOException e)public static void main(String args)new Client();8 这个客户端连接到地址为 xxx.x
23、xx.xxx.xxx的服务器,端口为 10000,并从键盘输入一行信息,发送到服务器,然后接受服务器的返回信息,最后结束会话。9 9 2 系统需求分析 2.1 系统设计目标 根据对飞鸽传输系统的调查研究,本设计主要需要满足以下几个系统设计目标:(1).可靠性原则:必须为用户提供安全可靠的服务,尤其是要保证数据传输的稳定性。(2).实用性原则:按照真正为局域网的实际工作服务的要求,按照需求的大小,合理地设计本系统。(3).友好性原则:考虑到本系统的使用人群大众化,所以本系统操作上要求简单方便,便于用户掌握,界面上争取做到简洁美观。(4).可扩展性原则:本系统采用开放的标准和接口,方便于以后系统向
24、更大的规模和功能扩展。1 2.2 系统总体需求分析 根据需求分析,本系统分为两个子系统:(1).局域网内简单文字聊天子系统,它是在局域网内选择相应的用户,以便对之发送文字信息。(2).文件、文件夹传输系统,它是在先把需要传输的文件、文件夹转换成相应的数据流进行传输,到了目的主机再进行还原。本系统的文字聊天子系统实现的功能类似于、MSN 用户之间的聊天。在设计系统时,应根据简洁、流畅的特点安排布局,在编制程序时应充分考虑数据传输的稳定、快捷,真正做到“简洁、高效、流畅、安全”的使用环境。用户使用的过程大致为:用户开启本软件,软件自动检索局域网的其它用户,显示用户列表,用鼠标可以任意选择用户列表里
25、面的用户。当发现需要连接某个用户之后,双击该用户,则弹出对话窗口。用户可以在这里发送消息或者文件。作为接收方的话,可以选择接收或者拒绝相应的传输文件。2.3 组织结构的分析 组织结构图如图 1 所示:10 图 1 组织结构图 2.3.1 开发运行环境 开发运行本系统所需要的软、硬件环境为:(1).Pentium100 及以上档次的 IBM PC 及其兼容机;(2).Windows95、Windows98 或 WindowsNT/2000/XP;(3).1G 以上可用硬盘空间;(4).128M 以上内存措施;(5).显示器;以上的配置要求为同一局域网内的计算机两台或两台以上。2.3.2 系统开发
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 局域网 飞鸽传书 软件 设计 实现
限制150内