文件传输基于p2p的局域网聊天和文件传输软件

文件传输软件  时间:2021-01-12  阅读:()

基于p2p的局域网聊天和文件传输软件

基于p2p的即时聊天和文件传输软件

摘要

随着计算机网络技术的飞速发展人们对于网络的依赖性也越来越大。通过网络的即时通信也越来越受到人们的喜爱 比如说现在非常流行的QQ即时通信软件就解决了人们在网络中交流的需求。

基于p2p的即时聊天和文件传输软件是基于tcp/ip协议中的tcp和udp协议完成的一个能够完成即时通信和传输文件的软件该软件实现了局域网内的通行在不需要使用公网的情况下使用该软件作为通信和传输文件的工具既简单又安全。

该软件采用了通信模型中的p2p模型使用java语言实现实现原理较简单功能较单一界面美化度较低。是一款简单的即时通信和文件传输软件。

关键词 计算机网络 p2p  tcp  udp  通信和文件传输软件

目录

1引

言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

1. 1课题背

景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

1.2国内外现

状. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

1.3本课题研究的迫切

性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . 1

1.4本文的主要工

作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .1

2.需求分析和开发工

具. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .1

2. 1.需求分

析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

2.2开发工

具. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2

3.系统总体结构设

计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .3

3. 1基本简

介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

3.2系统功能模块设

计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .3

3.3功能模块介

绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .4

4.系统流程与实

现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

4. 1系统设计流

程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .5

4. 1. 1即时聊天功能的流程设

计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

4. 1.2文件传输功能系统实

现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . .6

4.2实

现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

5 .测

试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13

参考文

献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13

1引言

1. 1课题背景

网络的发展促进了通信的发中通信的发展反过来让网络发展的更大更快通信作为我们日常生活中不可或缺的东西正在改变着人们的生活。比如说QQ即时通信软件就为人们的生活和学习带来了极大的方便。但是人们有时需要和与自己同一个局域网内的用户通信而通信的内容不通过公网来保证通信的安全防止黑客或者一些心怀不轨的人通过非法的手段获取到通信的内容。因为一旦信息泄露了就有可能带来不可估量的损失。在这种情况下基于p2p的即时聊天和文件传输的软件就产生了。

1.2国内外现状

网络的普及也让一些人获得了获取了更多的信息。通过窃听篡改重放等攻击

的手机来阻止或者是窃取别人的有用信息这种事在一些大型的公司里曾经就发生过。现在一些大型的公司自己会去开发适合自己公司的即时通信软件来防止此类的安全事件出现因此基于p2p的即时聊天和文件传输的应用开发现在仍然受到关注。

1.3本课题研究的迫切性

基于p2p的即时聊天和文件传输软件的实现能够帮助我们了解基于p2p的软件的实现原理和过程为我们以后开发一些大型的p2p的软件提供了技术上的保证。 同时该软件能够用于局域网的通信和传输文件具有一定的实际意义。

1.4本文的主要工作

本文主要介绍了基于p2p的即时聊天和文件传输的软件的实现原理和实现的过

程针对软件的原理和过程进行深入的讲解。同时本文可以作为基于p2p的即时聊天和文件传输的软件的使用说明书通过具体而详细的阐述让大家更容易的理解基于p2p 的即时聊天和文件传输的软件的实现原理和实现的过程。

2.需求分析和开发工具

2. 1.需求分析

由于国内外的安全现状不容乐观人们通信的时的信息很容易会被黑客们获取为

了在局域网中安全简单的痛信人们就开发了基于p2p的即时通信和文件传输软件。该软件能够实现在局域网内和其他人通信从而保证了通信的安全让人们拥有更加安全和简单的痛信环境。 同时 由于该软件是使用j ava语言开发具有平台无关性。能够在不同的操作系统的平台下完成即时通信和文件传输的功能。

2.2 p2p的即时聊天和文件传输软件的功能p2p的即时聊天和文件传输软件有以下功能

1局域网内点对点通信

能够同一时间和多个人在不同的ip和端口上实现通信

2简单文件传输

能够传输1M以上的文件

3能够在多个平台下实现通信

Java平台无关性

2.2开发工具

开发环境j av a

开发工具Myeclipse

TCP协议的工作流程下图所示

UDP协议的工作流程下图所示

3.系统总体结构设计

3. 1基本简介p2p的即时聊天和文件传输软件采用tcp和udp协议使用java语言实现基于p2p的

即时聊天和文件传输的功能。 同时 由于采用java语言实现具备了在多种平台下运行的优点。该软件主要包括两大部分聊天部分和文件传输部分。聊天部分采用了u dp协议文件传输部分采用了tcp协议。

3.2系统功能模块设计p2p的即时聊天和文件传输软件实现了以下功能

1即时聊天功能

2文件传输功能

3记录查询聊天内容

3.3功能模块介绍

即时聊天功能采用udp协议实现。聊天时用户必须输入通信对方的ip和端口号对

方只需要知道消息发送方的端口号就能够收到信息。对方收到信息后 同样必须输入ip才能回复消息给对方。通信模型如下图

聊天功能实现模型图

文件传输功能是采用tcp协议实现的 tcp协议的面向连接可靠性面向字节流

等优点 以及差错控制流量控制等特点保证了文件传输的可靠性。整个流程是文件发送方首先选择文件在选择文件后先发送文件的名称和大小给接收者。接收这如果同意接收文件则由接收者作为客户端向发送端发起连接连接建立后发送端开始传送文件给接收端。实现模型如下图所示

文件传输功能

4.系统流程与实现

4. 1系统设计流程

4. 1. 1即时聊天功能的流程设计

采用DUP协议设计即时聊天功能在即时聊天功能中设计了一个发送端和一个接收端发送端和接收端处于同一个平台中为了使通信双方能够造一次连接中进行多次通信在接收端采用了多线程实现多次通信。

在通信建立的时候通信的发起方首先填写通信的ip地址和port端口然后发送消息给接收者。接受者需要在同样的端口上等待发起者的信息。

发送端

发送端工作流程图

接收端

接收端工作流程图4. 1. 2文件传输功能系统实现

使用TCP协议实现文件传输功能在文件传输开始时 由发送方给接收方发送一个消息消息内容为待发送文件的文件名和长度。接收端收到后判断是不是传送的文件如果是传送的文件接收方择是否接收文件。然后开始传输文件文件传输完成后 自动关闭服务器端和客户端。

发送端

接收端文件传输发送端工作流程

N

4.2实现

基于p2p的即时通信和文件传输软件的实现是采用窗体的形式。在实现过程中设计到几点主要的功能

首先即时通信功能的发送端的实现首先创建DUP的so cket套接字和UDP

数据报包

在数据包中写入消息发送到接收端。

主要实现代码public void send() throws Exception{

DatagramSocket ds2=new DatagramSocket() ;

DatagramPacket dp2=new DatagramPacket(strmsg.getBytes() ,strmsg.getBytes() . length, InetAddress.getByName(ip) ,port) ;ds2. send(dp2) ;ds2.close() ;

}

接收端还是创建DUP的s o c k e t套接字和UDP数据报包然后接收数据。

DatagramSocket ds=new DatagramSocket(port) ;//udp的socket

DatagramPacket dp=new套接字

DatagramPacket(buf,buf. l ength) ;//udp数据报包

ds.receive(dp) ;

传送文件的实现过程

发送文件的窗体采用另一个f rame完成在frame中完成了选择和发送文件sendmessage sm = new sendmessage("fi le"+filepath.getText() .toString() ,mainFrame. ip.getText() , Integer.parseInt(mainFrame.port.getText() .toString() )) ;sm. send() ;

ServerSock ss=new

ServerSock(Integer.parseInt(mainFrame.port.getText() .toString() ) ,f ilepath.getT ext() .toString() ) ;ss. start() ;

选择文件后发送端使用UDP发送文件名和文件大小给接收端。如果接收端确认就开始传输文件

接收后显示的接收和拒接的信息 以供接收端接收if(new String(buf) . substring(0,

4) .equals("fi le")) { mainFrame. j ieshoufile. setText("收到文件:"+str+"是否接收") ;mai nFrame. j i eshouwenj ian. se tEnabl ed(true) ;mainFrame. j ie shouwenj i an. setEnabled(true) ;mainFrame. ji eshouwenj ian. setText("接收") ; mainFrame. jujue. setText("拒绝") ; }

接收端点击接受后创建clientsocket去连接服务器端然后服务器开始传送文件new Client(jfc.getSelectedFile() .getPath() )

接收数据public DataInputStream getMessageStream() throws Exception {try {

getMessageStream= new DataInputStream(new BufferedInputStream(socket.getInputStream()) ) ;return getMessageStream;

} catch (Exception e) {e.printStackTrace() ;if (getMessageStream != nul l)getMessageStream.close() ;throw e;

} finally {

}

写入到文件while (true) {int read = 0;if (inputStream != null) {read = inputStream.read(buf) ;

}passedlen += read;if (read == -1) {bre ak;

}

5 .测试

软件界面发送端和接收采用一个软件进行通信。发送端

接收端

文件发送端

文件接收端

结论

基于p2p的即时聊天和文件传输的软件有效解决了局域网内通信的问题实现了局域网内即时聊天和文件传输。在软件实现的过程充分运用了在网络编程中学习的TCP和UD P 的socket编程并把二者有效的结合。通过这次课程设计也掌握了文件传输和聊天的过程中的java实现。在设计过程中查阅了相关的java API和一些实现即时聊天和文件传输的例子从中学习到了很多书本上没有的知识。为自己在以后的软件开发中积累了一些经验。

同时软件的设计和实现过程中也存在很多问题。 比如人机交互界面的设计不是很合理在文件传输时就不能做其他的事情。没有运用多线程实现等等。这些问题说明了我在平时的学习中还需要合理有效的运用所学知识去设计和实现。

参考文献

[1]甘刚.Linux/NUIX网络编程[M] 北京 中国水利水电出版社 2019。

[2]叶树华 网络编程实用教程[M] 北京人民邮电大学出版社 2019。

[3]杜佳荣, 马建红,滕振宇 Java网络编程技术与实践[M] 北京清华大学出版社 2019。

金山云:618年中促销,企业云服务器2核4G仅401.28元/年,827.64元/3年

金山云618年中促销活动正在进行中!金山云针对企业级新用户优惠力度比普通个人用户优惠力度要大,所以我们也是推荐企业新用户身份购买金山云企业级云服务器,尽量购买3年配置的,而不是限时秒杀活动中1年的机型。企业级用户购买金山云服务器推荐企业专区:云服务器N3 2核4G云服务器,1-5M带宽,827.64元/3年,性价比高,性能稳定!点击进入:金山云618年中促销活动目前,金山云基础型E1云服务器2核4...

美国云服务器 1核 1G 30M 50元/季 兆赫云

【双十二】兆赫云:全场vps季付六折优惠,低至50元/季,1H/1G/30M/20G数据盘/500G流量/洛杉矶联通9929商家简介:兆赫云是一家国人商家,成立2020年,主要业务是美西洛杉矶联通9929线路VPS,提供虚拟主机、VPS和独立服务器。VPS采用KVM虚拟架构,线路优质,延迟低,稳定性强。是不是觉得黑五折扣力度不够大?还在犹豫徘徊中?这次为了提前庆祝双十二,特价推出全场季付六折优惠。...

3元/首月香港便宜vps究竟是什么货。

便宜的香港vps多少钱?现在国外VPS主机的价格已经很便宜了,美国VPS主机最低一个月只要十几元,但同样免备案的香港VPS价格贵不贵呢?或者说便宜的香港VPS多少钱?香港vps主机价格要比美国机房的贵一些,但比国内的又便宜不少,所以目前情况是同等配置下,美国VPS比香港的便宜,香港VPS比国内(指大陆地区)的便宜。目前,最便宜香港vps低至3元/首月、18元/月起,今天云服务器网(www.yunt...

文件传输软件为你推荐
域名备案查询如何查询自己域名是否备案,怎么查询备案号?国外空间租用国内和海外空间 域名 服务器托管 租用虚拟主机推荐有哪些好的虚拟主机推荐台湾vps虚拟主机,VPS,服务器,其中哪个流量最大?网站空间商个人网站备案如何从空间商到备案100m虚拟主机100M的虚拟主机都能做些什么上海虚拟主机上海虚拟主机哪家好啊?论坛虚拟主机做论坛-需要什么类型的虚拟主机?虚拟主机试用30天需要一个免费的虚拟主机,稳定的域名解析什么是域名解析?它有什么作用?
域名论坛 免费二级域名申请 hkbn 好看的桌面背景图 40g硬盘 789电视网 网络空间租赁 免费申请网站 cloudlink 独享主机 789 cxz qq金券 双线空间 apnic 上海联通 租主机 安卓免费网络电话 贵州电信营业厅 联想学生机 更多