文件传输基于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。

Dynadot COM特价新注册48元

想必我们有一些朋友应该陆续收到国内和国外的域名注册商关于域名即将涨价的信息。大概的意思是说从9月1日开始,.COM域名会涨价一点点,大约需要单个9.99美元左右一个。其实对于大部分用户来说也没多大的影响,毕竟如今什么都涨价,域名涨一点点也不要紧。如果是域名较多的话,确实增加续费成本和注册成本。今天整理看到Dynadot有发布新的八月份域名优惠活动,.COM首年注册依然是仅需48元,本次优惠活动截止...

提速啦母鸡 E5 128G 61IP 1200元

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

pia云低至20/月,七折美国服务器

Pia云是一家2018的开办的国人商家,原名叫哔哔云,目前整合到了魔方云平台上,商家主要销售VPS服务,采用KVM虚拟架构 ,机房有美国洛杉矶、中国香港和深圳地区,洛杉矶为crea机房,三网回程CN2 GIA,带20G防御,常看我测评的朋友应该知道,一般带防御去程都是骨干线路,香港的线路也是CN2直连大陆,目前商家重新开业,价格非常美丽,性价比较非常高,有需要的朋友可以关注一下。活动方案...

文件传输软件为你推荐
美国主机空间求速度快稳定好的美国主机空间com域名空间域名解析,我是一个新手站长,我买了一个空间跟一个COM域名,空间自带一个2级域名,我想把这个COM域名绑定到空间上,咋么办?急急急!求大神帮我,我创建一个游戏论坛,也查不到资料,可以给20元,我的手机13685455534,谢谢英文域名中文域名与英文域名区别免费国外空间哪里的国外免费空间好?国内免费空间免费空间哪个好用网站空间购买怎么购买一个网站空间及购买注意事项100m网站空间做网站100M的空间够用吗?手机网站空间谁有上手机网站刷空间人气的网址香港虚拟主机香港的虚拟主机好不好,如何选择虚拟主机?韩国虚拟主机香港和韩国的虚拟主机哪个比较好?
中文国际域名 万网域名空间 3322免费域名 服务器配置技术网 enzu ion godaddy续费优惠码 css样式大全 青果网 美国十次啦服务器 免费mysql cdn联盟 国外代理服务器软件 爱奇艺vip免费领取 流媒体加速 华为云盘 空间首页登陆 智能dns解析 免费asp空间申请 winds 更多