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

欧路云:美国CUVIP线路10G防御,8折优惠,19元/月起

欧路云新上了美国洛杉矶cera机房的云服务器,具备弹性云特征(可自定义需要的资源配置:E5-2660 V3、内存、硬盘、流量、带宽),直连网络(联通CUVIP线路),KVM虚拟,自带一个IP,支持购买多个IP,10G的DDoS防御。付款方式:PayPal、支付宝、微信、数字货币(BTC USDT LTC ETH)测试IP:23.224.49.126云服务器 全场8折 优惠码:zhujiceping...

欧路云(22元/月),美国CERA弹性云服务器!香港弹性云服务器15元/月起;加拿大高防vps仅23元/月起

欧路云怎么样?欧路云主要运行弹性云服务器,可自由定制配置,可选加拿大的480G超高防系列,也可以选择美国(200G高防)系列,也有速度直逼内地的香港CN2系列。所有配置都可以在下单的时候自行根据项目 需求来定制自由升级降级 (降级按天数配置费用 退款回预存款)。2021年7月14日美国 CERA 弹性云服务器 上新 联通CUVIP 线路!8折特惠中!点击进入:欧路云官方网站地址付款方式:PayPa...

美国多IP站群VPS商家选择考虑因素和可选商家推荐

如今我们很多朋友做网站都比较多的采用站群模式,但是用站群模式我们很多人都知道要拆分到不同IP段。比如我们会选择不同的服务商,不同的机房,至少和我们每个服务器的IP地址差异化。于是,我们很多朋友会选择美国多IP站群VPS商家的产品。美国站群VPS主机商和我们普通的云服务器、VPS还是有区别的,比如站群服务器的IP分布情况,配置技术难度,以及我们成本是比普通的高,商家选择要靠谱的。我们在选择美国多IP...

文件传输软件为你推荐
买虚拟主机在淘宝购买虚拟主机要注意什么?租用主机一般公司网站租用主机选哪一种的?域名注册网网站域名申请,在那备案?vps虚拟主机请通俗解析一下虚拟主机,VPS和云主机?它们各有什么用途?域名服务什么叫主域名服务器?代理主机主机做成代理服务器,其他局域网内的电脑必须通过我的这个网络出去便宜的虚拟主机哪里有便宜的国内虚拟主机?美国网站空间论坛选择空间可以选美国网站空间吗?网站空间价格我想自己弄个小网站,但我不会懂域名和买空间价格,便宜一点的一共要多少钱?虚拟主机是什么什么是虚拟主机
域名管理 美国vps评测 线路工具 hnyd 警告本网站美国保护 秒杀预告 seednet phpmyadmin配置 上海联通宽带测速 国外视频网站有哪些 服务器是干什么用的 丽萨 中国电信网络测速 如何登陆阿里云邮箱 免费获得q币 hosts文件 wannacry勒索病毒 傲盾代理 热云 linuxvi 更多