精华内容
下载资源
问答
  • P2P文件传输

    热门讨论 2008-07-21 22:30:44
    P2P文件传输的VC源代码,包括分为客户端和服务端两个工程文件。
  • p2p文件传输

    2013-06-30 20:24:54
    实现简单的p2p文件相互传输,既是客服端也是服务器端。使用vc++6.0写的可以直接编译。
  • P2P文件传输.zip

    2021-04-13 08:38:37
    P2P文件传输
  • 在C-S体系中,服务器承担着巨大的责任,需要处理大量的客户端请求,如文件下载请求,这种体系之间**客户端不能直接通信**,而是通过服务器传达。# P2P体系P2P,即peer-to-peer,意思是对等网络。P2P区分于C-S的就是...

    > 网络中的应用,存在两种主流的体系结构。一种是C-S体系,另一种是P2P(对等网)体系。

    # C-S体系

    C-S体系是应用很广泛的应用程序体系,如Web应用。在C-S体系中,服务器承担着巨大的责任,需要处理大量的客户端请求,如文件下载请求,这种体系之间**客户端不能直接通信**,而是通过服务器传达。

    # P2P体系

    P2P,即peer-to-peer,意思是对等网络。P2P区分于C-S的就是这种体系下**客户端可以直接通信**,而通信的双方称为对等方。而对等方之间可以共享资源,如文件。这样客户端不仅是Bit的消费者,也是Bit的生产者,大大减轻了服务器的负担。应用如:迅雷、BT。

    # P2P和C-S文件分发的比较

    为什么文件分发适用于P2P体系呢?看一个例子。

    ![](https://leanote.com/api/file/getImage?fileId=60f67cb7ab64410d9600105b)

    对于C-S体系其模型图如上,在这种模型之下。若服务器要向客户端发送一个大文件,长度为L,比如视频文件。服务器需要将文件发送给每个客户端端,服务器的负担是**N*L**。服务器承受了极大的负担,并且消耗了巨大的带宽。

    ![](https://leanote.com/api/file/getImage?fileId=60f67cb7ab64410d9600105c)

    对于P2P体系,其模型图如上。在P2P体系下,若服务器要向客户端发送一个大文件,服务器先将文件分片,再向网络中的客户端分发文件片段,而该客户端接收文件的同时,同样也可以将文件的任何部分发送到另一个客户。之后就是这些存在文件片段的客户端相互通信,这样就减轻了服务器的发送负担。甚至服务器理想情况下负担为**L**。

    而在科学计算下得到,C-S体系文件的分发时间和客户端数量N成正比。而P2P体系文件的分发时间是客户端数量N的N^1/2函数。

    ![](https://leanote.com/api/file/getImage?fileId=60f67cb7ab64410d9600105a)

    **总之,在P2P体系中,对等方能够协助服务器分发文件,使客户端不仅是Bit的消费者,也是Bit的生产者。**

    # P2P应用-BitTorrent

    P2P应用最广泛的应用就是文件分发,而文件分发最著名的就是BitTorrent协议,俗称BT。BT的基本原理就如上面所形容,对等方间共享资源,在接收文件的同时也发送文件,充分利用客户端的上载带宽。

    ## 1. 相关概念

    * 洪流:参与一个文件分发的所有对等方的集合,即洪流中的客户端都在下载文件块,并且上传文件块。

    * tracker:一旦一个客户端加入洪流,就需要向tracker注册自己,并周期性的通知tracker它是否仍在洪流中。(就是服务器)

    * 种子(.torrent文件):包含文件分块信息,例如一个500M的文件分为500份,文件就存储了500份片段文件的信息。还有tracker地址,就是真正服务器的地址。以及原始文件名或文件夹名。

    ##2. 工作过程

    * A:客户端从网站或者其他地方获取到.torrent文件。

    * B:读取文件内容,载入内存。

    * C:读取到文件中的tracker地址,与tracker建立连接并发送需要下载的文件的标识。tracker接收到后将该客户端加入洪流,就是将IP加入列表中。并返回洪流中其他客户端的IP,假如返回有100个。(tracker要保存洪流中的对等体信息,因此下载的客户端每过一段实现需要向tracker通知一次,告诉tracker自己是否仍然在洪流中)

    * D: 客户端接收到100个IP后,开始一个个尝试去建立TCP连接。若连接上了,就询问对方拥有那些分块,需要哪个分块,然后相互传输。

    总之,BT的工作方式就是一句话:人人为我,我为人人。


    >参考:

    《计算机网络-自顶向下方法》 Jams F.Kurose Keith W.Ross

    展开全文
  • 基于P2P文件传输

    2012-09-12 09:13:21
    基于P2P文件传输,P2P原理与运用,一学即会。
  • c++ P2P文件传输

    2011-07-26 18:12:10
    P2P文件传输 server client c++代码
  • P2P文件传输系统

    2011-09-09 11:38:04
    简单的P2P文件传输系统,使用vc6.0
  • 网狼 P2P文件传输管理器
  • 基于java的p2p文件传输代码.rar

    热门讨论 2009-11-06 09:28:06
    基于java的p2p文件传输代码.rar基于java的p2p文件传输代码.rar基于java的p2p文件传输代码.rar基于java的p2p文件传输代码.rar基于java的p2p文件传输代码.rar基于java的p2p文件传输代码.rar基于java的p2p文件传输代码....
  • p2p文件传输 源代码

    2009-09-25 02:16:28
    p2p文件传输 源代码, 拿出来与大家分享一下,此程序来源于网络。
  • P2P文件传输系统的实现毕业论文.pdf
  • P2P文件传输和聊天系统Internet网络编程P2P程序
  • P2P文件传输源代码

    热门讨论 2008-04-24 15:52:22
    基于流媒体的P2P文件传输软件源代码
  • 使用java swing, socket的局域网p2p文件传输软件,实现了好友添加,用户名添加,多文件传输,传输进度显示,可以共享pc中的任何文件,所有信息保存在sqlite数据库中
  • P2P文件传输 介绍 使用UDP协议进行对等文件传输。 如果任何服务器对等方已准备好发送名称为name文件,并且文件开始传输的有效path则接收方按name请求文件。 用法 您可以为接收方和传输方运行相同的应用程序,但要...
  • mldonkey-2.9.0p2p文件传输工具
  • vb 编写的P2P文件传输和聊天系统,纯API写的,没有使用控件。
  • 交出 P2P文件传输-100%在浏览器中运行
  • BitTorrent协议是支持网络当中数据的上下传输的一个P2P文件传输协议。那么基于这个协议的BT软件大家肯定更不会陌生。但是它却有着更为广泛的使用,尤其是在一些大型网络数据交换平台中,也常常会使用这个协议。那么...

    BitTorrent协议是支持网络当中数据的上下传输的一个P2P文件传输协议。那么基于这个协议的BT软件大家肯定更不会陌生。但是它却有着更为广泛的使用,尤其是在一些大型网络数据交换平台中,也常常会使用这个协议。那么今天我们就来对这个协议进行一下基础讲解。

    Bittorrent简介

    Bittorrent已经成为最为流行的P2P软件,在2004年6月的Cachelogic的一份测试是报告中提到Bittorrent的数据流量已经占到整个P2P数据流量的52%。与其他传统P2P软件如Gnutella,Fasttrack不同,Bittorrent只是一个纯粹的文件下载协议,并提供搜索功能,所以往往资源的获取要跟其他一些应用结合起来,比如说发布Bittorrent种子信息的网站如5Q、或者是网络搜索引擎如百度、google等。

    Bittorrent工作原理

    Bittorrent的工作原理其实很简单,他就是将一份数据分隔成256K大小的数据分组,并在Bittorrent 网络中一群用户相互协作完成这些数据的分发,用户参与数据分发的信息已文件的形式存储,一般可以通过web网站获取这些信息。但是实际数据传输依靠的不是Http协议,而是由专门的P2P协议来完成,这些对于用户都是透明的。

    普通的HTTP/FTP下载使用TCP/IP协议,BitTorrent协议是架构于TCP/IP协议之上的一个P2P文件传输协议,处于TCP/IP结构的应用层。 BitTorrent协议本身也包含了很多具体的内容协议和扩展协议,并在不断扩充中。

    根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个.torrent文件,即种子文件,也简称为“种子"。 .torrent文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的计算结果根据BitTorrent协议内的B编码规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入.torrent文件中;所以,.torrent文件就是被下载文件的“索引"。

    下载者要下载文件内容,需要先得到相应的.torrent文件,然后使用BT客户端软件进行下载。

    下载时,BT客户端首先解析.torrent文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供下载者其他下载者(包括发布者)的IP。下载者再连接其他下载者,根据.torrent文件,两者分别对方告知自己已经有的块,然后交换对方没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。

    下载者每得到一个块,需要算出下载块的Hash验证码与.torrent文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。

    一般的HTTP/FTP下载,发布文件仅在某个或某几个服务器,下载的人太多,服务器的带宽很易不胜负荷,变得很慢。而BitTorrent协议下载的特点是,下载的人越多,提供的带宽也越多,种子也会越来越多,下载速度就越快。而有些人下载完成后关掉下载任务,提供较少量数据给其他用户,为尽量避免这种行为,在非官方BitTorrent协议中存在超级种子的算法。这种算法允许文件发布者分几步发布文件,发布者不需要一次提供文件所有内容,而是慢慢开放的下载内容的比例,延长下载时间。此时,速度快的人由于未下载完必须提供给他人数据,速度慢的人有更多机会得到数据。

    【责任编辑:佟媛微 TEL:(010)68476606】

    点赞 0

    展开全文
  • 通过本地网络进行P2P文件传输。 本地套接字是一个愚蠢的项目代号,用于通过同一WiFi与他人共享文件。 使命宣言 创建一个快速,开放,安全和跨平台的解决方案,与周围的人共享文件。 安装 在Windows / Mac / Linux...
  • P2P文件传输在局域网内,通过广播模式获取IP并可通过此途径绑定端口,以成功的建立TCP连接进行文件传输。
  • 1.带领您深入学习QT5/C++:P2P基础理论、Qt开发P2P文件传输系统、TCP的C/S通信,逐步提升Qt编程水平。 2.所有章节均有理论知识介绍、接口讲解、实例代码讲解,讲解过程中不断穿插老师在开发过程中遇到的问题及解决...
  • s Ares在Mac和iOS设备之间进行零设置* P2P文件传输Ares是我在24小时内构建的一项服务,在艾伯塔大学的ECE周期间在HackED 2016上获得了第一名。 演示幻灯片:rocket:Ares在Mac和iOS设备之间进行零设置* P2P文件传输...
  • p2p文件传输程序

    2013-03-30 17:01:43
    P2P 之 UDP穿透NAT的原理与实现,包含服务端和客户端
  • P2P文件传输发送端可以与服务器端建立连接,并且可以选择电脑中的文件并发送文件。接收端接收文件弹出保存文件对话框并保存文件。
  • 一个简单跨平台的预设P2P文件传输工具,目前支持Windows / Linux / OS X 用法 当本机作为客户端时: mercury -t client -p path -i serverIP [-P port -T threadnum -b buffer -n blocksize] 当本机作服务器为时...
  • Ares - 零设置实现在Mac和iOS设备之间的P2P文件传输

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,825
精华内容 10,730
关键字:

p2p文件传输