前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >java p2p实例_java文件p2p传输[通俗易懂]

java p2p实例_java文件p2p传输[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-09-13 02:17:13
发布于 2022-09-13 02:17:13
1.7K0
举报

大家好,又见面了,我是你们的朋友全栈君。

【实例简介】

java模仿电驴、迅雷实现多线程文件传输,可用于局域网或internet文件传输发送,程序采用套接字实现p2p(即点到点)文件传输。

【实例截图】

【核心代码】

java文件p2p传输

└── java文件p2p传输

├── classes

│ ├── package cache

│ │ └── trans.dep2

│ └── trans

│ ├── Application1$1.class

│ ├── Application1.class

│ ├── MainFrame.class

│ ├── MainFrame_jbtnSend_actionAdapter.class

│ ├── MainFrame_jbtnSetting_actionAdapter.class

│ ├── MainFrame_this_windowAdapter.class

│ ├── Server.class

│ ├── SettingDialog.class

│ ├── SettingDialog_jbtnCancel_actionAdapter.class

│ ├── SettingDialog_jbtnOK_actionAdapter.class

│ ├── SocketThread.class

│ ├── TransFileDialog.class

│ ├── TransFileDialog_jbtnCancel_actionAdapter.class

│ ├── TransFileDialog_jbtnFile_actionAdapter.class

│ ├── TransFileDialog_jbtnOK_actionAdapter.class

│ ├── TransFileManager.class

│ ├── TransFilePanel.class

│ ├── TransFilePanel_jbtnCannel_actionAdapter.class

│ └── TransFilePanel_jbtnOK_actionAdapter.class

├── src

│ └── trans

│ ├── Application1.java

│ ├── MainFrame.java

│ ├── Server.java

│ ├── SettingDialog.java

│ ├── SocketThread.java

│ ├── TransFileDialog.java

│ ├── TransFileManager.java

│ └── TransFilePanel.java

├── trans.exe

├── trans.jar

├── trans.jpx

├── trans.jpx.local

├── trans.jpx.local~

└── transW.exe

6 directories, 34 files

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160284.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
java 文件锁[通俗易懂]
今天在分析HDFS数据节点的源码时,了解到在数据节点的文件结构中,当数据节点运行时,${dfs.data.dir}下会有一个名为”in_use.lock”的文件,该文件就是文件锁。
全栈程序员站长
2022/09/13
9660
基于P2P文件传输
对等网络P2P(peer-to-peer)技术是一种用于不同计算机用户之间,不经过中继设备直接交换数据或服务的技术,其网络通信方式如下图所示:
全栈程序员站长
2022/09/13
9910
即时通讯——P2P传输技术详解[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。纯点对点网络没有客户端或服务器的概念,只有平等的同级节点,同时对网络上的其它节点充当客户端和服务器。这种网络设计模型不同于客户端-服务器模型,在客户端-服务器模型中通信通常来往于一个中央服务器。
全栈程序员站长
2022/09/13
3.2K0
p2p文件服务器,P2P文件传输
> 网络中的应用,存在两种主流的体系结构。一种是C-S体系,另一种是P2P(对等网)体系。
全栈程序员站长
2022/09/13
1.6K0
P2P技术原理及应用[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 P2P技术原理及应用 作 者:金海 廖小飞 摘要:对等网络(P2P)有3种主要的组织结构:分布式哈希表(DHT)结构、树形结构、网状结构。P2P技术已经延伸到几乎所有的网络应用领域,如分布式科学计算、文件共享、流媒体直播与点播、语音通信及在线游戏支撑平台等方面。现在人们已经开始将重心转入到覆盖层网络的节点延时聚集研究、覆盖网之间(Inter-Overlay)优化研究、P2P支撑平台研究以及P2P安全研究等方面。 关键词:对等网络;分布式哈希表;覆盖层网络 Abstract:ThePeer-to-peer(P2P)network has three main structures: Distributed Hash Table (DHT) structure, tree structure, and mesh structure. P2P technology has been extended to almost all areas of network applications, including distributed scientific computing, file sharing, streaming media on-demand and live broadcast, voice communications, and online gaming support platform. Now, study areas such as node latency aggregation for overlay network, Inter-Overlay optimization, P2P supporting platform, and P2P security are receiving more attention. Keywords:P2P;distributedHash table; overlay network 1 P2P技术原理 什么是对等网络(P2P)技术?P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。在C/S模式中,数据的分发采用专门的服务器,多个客户端都从此服务器获取数据。这种模式的优点是:数据的一致性容易控制,系统也容易管理。但是此种模式的缺点是:因为服务器的个数只有一个(即便有多个也非常有限),系统容易出现单一失效点;单一服务器面对众多的客户端,由于CPU能力、内存大小、网络带宽的限制,可同时服务的客户端非常有限,可扩展性差。P2P技术正是为了解决这些问题而提出来的一种对等网络结构。在P2P网络中,每个节点既可以从其他节点得到服务,也可以向其他节点提供服务。这样,庞大的终端资源被利用起来,一举解决了C/S模式中的两个弊端。 P2P网络有3种比较流行的组织结构,被应用在不同的P2P应用中。 (1)DHT结构 分布式哈希表(DHT)[1]是一种功能强大的工具,它的提出引起了学术界一股研究DHT的热潮。虽然DHT具有各种各样的实现方式,但是具有共同的特征,即都是一个环行拓扑结构,在这个结构里每个节点具有一个唯一的节点标识(ID),节点ID是一个128位的哈希值。每个节点都在路由表里保存了其他前驱、后继节点的ID。如图1(a)所示。通过这些路由信息,可以方便地找到其他节点。这种结构多用于文件共享和作为底层结构用于流媒体传输[2]。 (2)树形结构 P2P网络树形结构如图1(b)所示。在这种结构中,所有的节点都被组织在一棵树中,树根只有子节点,树叶只有父节点,其他节点既有子节点也有父节点。信息的流向沿着树枝流动。最初的树形结构多用于P2P流媒体直播[3-4]。 (3)网状结构
全栈程序员站长
2022/06/28
3.4K0
P2P技术原理及应用[通俗易懂]
Java文件上传实例并解决跨域问题
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传功能的实现。
全栈程序员站长
2022/08/27
1.4K0
Java文件上传实例并解决跨域问题
docker下修改mysql配置文件[通俗易懂]
由于需要修改mysql的sql_mode,在命令行修改每次重启都会失效,因为修改docker下mysql的配置文件。
全栈程序员站长
2022/08/22
3K0
PSCP 基本使用[通俗易懂]
问题: 如何免密码输入,传送数据 “sshpass is not recognized” on Windows”
全栈程序员站长
2022/11/17
2.4K0
PSCP 基本使用[通俗易懂]
Java语言实现hello world代码[通俗易懂]
参考https://blog.csdn.net/yilovexing/article/details/53256713
全栈程序员站长
2022/08/24
1.6K0
Java: Hook技术[通俗易懂]
Hook翻译成中文就是勾子的意思,在java中它表示在事件到达终点前进行拦截或监控的一种行为。
全栈程序员站长
2022/08/24
3.3K0
搜狐视频P2P技术揭秘 – 架构篇[通俗易懂]
搜狐视频P2P客户端并非单纯的只走P2P的客户端,由于需要向播放器提供数据,并且P2P通道质量的不确定性,需要使用CDN来弥补数据,因此产生了节约比这个指标。节约比,又叫分享率,从微观上来讲就是在一次播放中,通过P2P下载的媒体数据占据总数据量(P2P+CDN)的比例,宏观上指在一段时间内P2P系统提供的带宽占据视频网站总可用带宽(P2P+CDN)的比例。对播放器来说,比较重要的指标是流畅率,流畅率往往和节约比是相互制约的关系,播放器P2P客户端的一个重要任务就是寻找一个兼顾流畅率和节约比的平衡点。
全栈程序员站长
2022/09/06
1.1K0
搜狐视频P2P技术揭秘 – 架构篇[通俗易懂]
苹果p12证书转换[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/148550.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/02
1K0
第一个Java程序—HelloWorld[通俗易懂]
工欲善其事必先利其器,在写第一个Java程序之前,需要安装JDK以及配置环境变量,具体步骤见 Windows中配置Java环境变量。
全栈程序员站长
2022/09/08
1.2K0
第一个Java程序—HelloWorld[通俗易懂]
局域网文件传输软件[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。在公司实习了一个周,虽然很累,但也感觉有所得,此次项目是做一个局域网两台计算机之间的文件传输。我用的主要控件为winsock控件,用其TCP协议。至于用此控件连接两台计算机书上都有介绍,我主要介绍一下我传送文件的思想和方法: 首先,将要传送的文件分成指定大小的N个包,大小不能超过8K因为TCP每次最多发送8K数据,最后一个包可能会小于其它包。然后在每个包加个包头,因为接收端需要通过包头知道传送过来的是数据还是路径(因为发送端指定存放路径),接收端收到数据后必须返回确认到发送端,这样才能循环发送,但一定要有最后的终止,不然会死循环。我的主要发送和接收代码如下: 发送端收到数据后产生的事件 Private Sub WskCli_DataArrival(ByVal bytesTotal As Long) Dim FIT As Boolean, OVER As Boolean, xx As Byte WskCli.GetData FIT If Number < BagNum Then If FIT = True Then ‘接收端已收到上一个数据包 If v <> 0 Then ‘传送速率受限制 Dim ss As Long ss = 0 Do Until (Number * 1024 <= v * ss) ‘传送速率过大则等待 ss = CLng((Time – timeInt) * 3600 * 24) Loop End If Send_File ‘调用发送文件数据包过程 End If Number = Number + 1 ‘计数 ProgressBar1.Value = Number * 20 / BagNum ‘刷新进度条的进度 El** *x = 2 WskCli.SendData xx ‘发送传送完毕的信息给接收端 Close 1 Label1.Caption = “发送完毕!” OVER = True Number = 0 ‘传送完后置计数Number=0 End If If OVER = True Then ‘传送完之后的处理 Drive1.Enabled = True Dir1.Enabled = True File1.Enabled = True CmdSend.Enabled = True Exit Sub End If End Sub send_file是自定义的一个发送过程: Private Sub Send_File() Dim i As Long ‘循环变量 If Number <= BagNum – 1 Then ReDim Buff(1 To BagSize) As Byte ‘定义缓冲区 ReDim TempBuff(0 To BagSize) As Byte Get 1, , Buff TempBuff(0) = 1 ‘设置包头为1代表文件数据 For i = 1 To BagSize TempBuff(i) = Buff(i) Next WskCli.SendData TempBuff Else ‘传送最后一个数据包 n = filelength – Seek(1) + 1 ‘得到最后一个包的大小 If n > 0 Then ReDim Buff(0 To n) As Byte ReDim TempBuff(0 To n) As Byte TempBuff(0) = 1 ‘设置包头为1代表文件数据 Get 1, , Buff For i = 1 To n TempBuff(i) = Buff(i – 1)
全栈程序员站长
2022/09/05
1K0
java文件上传服务器路径,java文件上传服务器路径地址「建议收藏」
已获取自动化工具包,并上传到服务器完成解压,得到完整的软件文件夹tsdbtool。已下载依赖:GCC-7.3.0、CMake-3.5.2的源码包,放到tsdbtool文件夹下的postgresqlDep文件夹中,下载地址见表2。已获取PostgreSQL的源码包或者RPM包,并上传到自动化工具tsdbtool目录下。根据实际环境,完成安装
全栈程序员站长
2022/09/14
4.7K0
java文件上传服务器路径,java文件上传服务器路径地址「建议收藏」
探索 libp2p:基本知识
自 napster 20 年前以来,p2p 的应用一直层出不穷,一开始主要集中在音视频的文件共享领域。早期的 bitTorrent,电驴,后来的pplive,迅雷,快播等,都是走内容分享的路子。在这里,p2p 主要充当的是点对点下载资源块的角色,至于播放体验的优化,是另一回事。在分光了一段时间后,互联网进入到高带宽 + 海量 CDN 时代,这类的 p2p 软件渐渐式微,越来越小众。原因很简单 —— 通过高速网络和遍布全球各地的 CDN 节点,流媒体音视频的播放体验已经非常优秀,普通用户又何必退而求其次使用体验一般,片源不稳定的 p2p 软件呢(除了特殊需求)?
tyrchen
2021/06/17
4.6K0
【Java 基础篇】Java网络编程实战:P2P文件共享详解
Java网络编程是现代软件开发中不可或缺的一部分,因为它允许不同计算机之间的数据传输和通信。在本篇博客中,我们将深入探讨Java中的P2P文件共享,包括什么是P2P文件共享、如何实现它以及一些相关的重要概念。
繁依Fanyi
2023/10/12
1.2K0
【Java 基础篇】Java网络编程实战:P2P文件共享详解
搜狐视频P2P技术揭秘 – 流程篇
无论哪种Peer,使用的P2P协议都是UDP,因为对NAT打洞来说,UDP的打洞成功率比TCP高。据闻有不信邪的尝试过TCP,最后还是回归UDP。也有说使用UPnP的,这个主要依赖于路由设备,可控性不够。
全栈程序员站长
2022/09/06
6210
搜狐视频P2P技术揭秘 – 流程篇
如何创建一个Java项目[通俗易懂]
菜单“File”下的“New”里“Java Project”,点击即可创建Java项目。
全栈程序员站长
2022/09/08
8150
如何创建一个Java项目[通俗易懂]
Java文件上传详解
在Web应用中,文件上传和下载功能是非常常用的功能,这篇博客就来讲一下JavaWeb中的文件上传和下载功能的实现。
全栈程序员站长
2022/08/27
1.9K0
Java文件上传详解
相关推荐
java 文件锁[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档