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

BuyVM新设立的迈阿密机房速度怎么样?简单的测评速度性能

BuyVM商家算是一家比较老牌的海外主机商,公司设立在加拿大,曾经是低价便宜VPS主机的代表,目前为止有提供纽约、拉斯维加斯、卢森堡机房,以及新增加的美国迈阿密机房。如果我们有需要选择BuyVM商家的机器需要注意的是注册信息的时候一定要规范,否则很容易出现欺诈订单,甚至你开通后都有可能被禁止账户,也是这个原因,曾经被很多人吐槽的。这里我们简单的对于BuyVM商家新增加的迈阿密机房进行简单的测评。如...

vpsdime:夏日促销活动,美国达拉斯VPS,2G内存/2核/20gSSD/1T流量,$20/年

vpsdime怎么样?vpsdime是2013年注册的国外VPS主机商,实际上他还有一系列的其他域名站点如Winity.io, Backupsy,Cloudive, Virtora等等,母公司“Nodisto IT”相对来说还是很靠谱了的商家。VPSDime主要提供各种高配低价VPS套餐,其中Linux VPS和存储VPS基于OpenVZ架构,高级VPS基于KVM。VPSDime在上个季度的Low...

新注册NameCheap账户几天后无法登录原因及解决办法

中午的时候有网友联系提到自己前几天看到Namecheap商家开学季促销活动期间有域名促销活动的,于是就信注册NC账户注册域名的。但是今天登录居然无法登录,这个问题比较困恼是不是商家跑路等问题。Namecheap商家跑路的可能性不大,前几天我还在他们家转移域名的。这里简单的记录我帮助他解决如何重新登录Namecheap商家的问题。1、检查邮件让他检查邮件是不是有官方的邮件提示。比如我们新注册账户是需...

文件传输软件为你推荐
服务器空间租用网站服务器是租用好,还是购买服务器好,还是购买空间好..已备案域名查询已经有个顶级域名,怎么查询是否备案?虚拟主机推荐谁能推荐个性价比高的虚拟主机?域名注册查询如何知道域名注册信息?域名服务商域名服务商所属区域怎么填写虚拟主机申请个人虚拟主机怎么申请?免备案虚拟空间免备案的虚拟主机空间,买了以后会强制备案不?上海虚拟主机帮忙推荐一下哪里的虚拟主机比较好?郑州虚拟主机59互联 亿恩科技 和郑州景安那一个公司的虚拟主机最好!我指的是速度和服务!谢谢!请大家凭良心说话!云南虚拟主机云南虚拟主机,公司网站用本地客户,云南数据港怎么样?
虚拟主机服务器 日本私人vps 香港vps主机 看国外视频直播vps linuxapache虚拟主机 virpus yardvps 韩国电信 免费ftp空间 sub-process php免费空间 太原联通测速平台 web服务器架设 服务器干什么用的 网站在线扫描 畅行云 永久免费空间 wordpress中文主题 ssl加速 江苏双线 更多