(计算机专业 毕业论文)基于Java的局域网飞鸽传书软件的设计与实(2)

2019-03-22 09:41

TCP/IP协议中一个有效的网络地址包括IP地址和端口地址两个部分。TCP/IP协议提供两种计算机之间进行通讯的方式:TCP方式和UDP方式。[11]

TCP是当应用程序要得到完整且可信赖的数据时所采用的传输控制协议,是一种面向连接的服务,TCP会在传输的过程中多了许多确认的动作以确定数据的正确性。在文件传输时会先行建立连接,通过链接提供双向、有序且无重复的数据流服务、以及流量控制、差错检测和纠错等服务,从而确保文件传输的正确性;而UDP比起TCP是要简单许多,UDP是一种无连接的服务,它在传输文件时不会确保传输端的文件能够正确无误的传送到接收端,所以UDP传输数据通常会遗失却不见得再重新传输一次,所以当使用UDP时,通常要自己作接收确认的工作。因此使用UDP的应用程序着重于简洁和效率以完成工作,它不需要像TCP一般复杂的手续就可以达到交换信息的目的。[11]

飞鸽传书是由日本人Shirouzu Hiroaki发明的免费软件,是一款局域网内基于 TCP/IP(UDP)的即时通信软件。该软件不需要服务器支持可运行于多种操作平台(Win/Mac/UNIX/Java),并实现跨平台信息交流。该软件支持文件/文件夹的传送,目前已有的版本包括: Win32, Win16, MacOS, MacOSX, X11, GTK, GNOME,Java等,并且公开源代码。飞鸽传书目前最新版本是飞鸽传书2010,绿色软件,体积小巧,无需安装。它支持文字通讯,文件(夹)传输,语音视频,远程控制等多媒体功能。具有群聊、多人语音、多人视频、网络会议室等专业即时通讯软件功能。可局域网用户自动搜索,也可架设服务器进行统一管理。局域网,互联网均可使用,内外网互通,可与联信UM/Gmail/Jabber等XMPP标准通信服务器互通。飞鸽传书中文版Ver2.06由阿志于2004年11月制作,是一款飞鸽传书的经典版本。它支持局域网文字

3

通讯,文件(夹)传输局域网用户自动搜索,简单快捷,仅适用于局域网使用。[10]

1.2 主要研究思路和方法

本系统的开发采用基于Java socket的广播发送模式,进行文字聊天和文件、文件夹传输的设计与开发。因此,本设计首先分析该系统的相关功能,结合本设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识,选择所熟悉的开发工具进行本设计的开发;在设计中以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法;最后,在系统开发完毕后,进行调试和运行,做好调试和运行的相关记录。

1.3 研究系统的目的以及意义

随着互联网技术的迅猛发展,网络给人们带来了非常多的便利,比如人们借助于网络进行相互交流已经变得越来越方便。聊天工具作为互联网中运用最为广泛的通信工具之一,如今都已被广大网民所接受和喜爱。很多人都使用过飞鸽传书软件,尤其对于需要在局域网内进行大量数据传输的人来说,飞鸽传书软件备受亲睐。飞鸽传书发展到现在已经具有了很多功能:有文字聊天、文件、文件夹传输的基本功能,也有密封、加锁等较为复杂的功能。

本毕业设计的目的主要是为了检查使学生综合运用以前所学知识(包括以前所学的一些关于网络、编程、信息安全等知识)的能力,模拟局域网飞鸽传书软件,开发一个基于Java的飞鸽传书局域网通信软件,本毕业设计主要实现局域网内文字聊天及文件传输等功能。本设计中程序用Java编写,能

4

在Windows 2000/net/xp等环境下运行。主要研究的内容有:TCP/IP点对点协议技术,C/S架构和SOCKET网络编程技术,对当前局域网文件传输进行需求分析并提出解决方案和对解决方案进行设计,完成局域网内用户间文字聊天功能,完成局域网内用户间相互的文件、文件夹传输功能,对工作计划统计以及分析系统进行测试并得到测试结果。[10]

1.4 Java Socket

socket通常也称作\套接字\,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过\套接字\向网络发出请求或者应答网络请求。

以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。

重要的Socket API:

java.net.Socket继承于java.lang.Object,有八个构造器,其方法并不多,下面介绍使用最频繁的三个方法。

.Accept方法用于产生\阻塞\,直到接受到一个连接,并且返回一个客户端的Socket对象实例。\阻塞\是一个术语,它使程序运行暂时\停留\在这个地方,直到一个会话产生,然后程序继续;通常\阻塞\是由循环产生的。

.getInputStream方法获得网络连接输入,同时返回一个IutputStream

5

对象实例,。

.getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。

例如开发一个Server-Client模型的程序。它的开发原理如下: 服务器:使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。

客户端:使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。

{建立服务器} import java.net.*; import java.io.*; public class Server { private ServerSocket ss; private Socket socket; 6

private BufferedReader in; 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.getOutputStream(),true); String line = in.readLine(); 7


(计算机专业 毕业论文)基于Java的局域网飞鸽传书软件的设计与实(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:“十三五”重点项目-糯米白醋王项目申请报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: