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

    2011-09-09 11:38:04
    简单的P2P文件传输系统,使用vc6.0
  • P2P文件传输系统的实现毕业论文.pdf
  • 本项目为网络课程设计的作业,采用c#实现,使用UDP传输协议,在连接时采用TCP连接...进行文件传输文件传输过程需要对方确认接收才可以完成,对方可以拒绝接收,文件格式不限,txt,word,pdf,音频,视频都可以传输。
  • P2P文件传输和聊天系统Internet网络编程P2P程序
  • vb 编写的P2P文件传输和聊天系统,纯API写的,没有使用控件。
  • P2P分布式文件传输系统的研究
  • 这个程序允许2个用户进行聊天和发送程序,目前仅是单机程序,不是客户端和...传输任意大小的文件,本机发送传输速度约3MB/秒,电缆连接约为50-60 KB/秒.(注:这个代码我没有测试成功,可能还有问题,感兴趣的自己研究)
  • 基于Windows操作系统和winpcap软件包,结合对称与非对称加密算法和散列算法、数字签名原理,设计基于p2p文件传输的安全通信处理流程,定义数据包格式,通过c++开发一个p2p文件的安全通信软件。 实现: Windows环境下...
  • 基于p2p文件传输,很不错的一个文件系统
  • 1.带领您深入学习QT5/C++:P2P基础理论、Qt开发P2P文件传输系统、TCP的C/S通信,逐步提升Qt编程水平。 2.所有章节均有理论知识介绍、接口讲解、实例代码讲解,讲解过程中不断穿插老师在开发过程中遇到的问题及解决...
  • 这是我自己编的一个基于P2P的局域网文件传输控制系统,采用集中式P2P结构。服务器存储用户登陆时的共享文件信息(不是实质的文件,只保存文件的信息,如大小,文件名等),支持断点续传,多点下载。 用法:1、运行...
  • MFC VC VC\专用编程\ 通信编程\VC编程P2P文件传输和聊天系统.rar
  • 基于P2P文件传输

    千次阅读 2013-05-13 23:09:52
    基于P2P文件传输 1. P2P简介 对等网络P2P(peer-to-peer)技术是一种用于不同计算机用户之间,不经过中继设备直接交换数据或服务的技术,其网络通信方式如下图所示: P2P技术打破了传统的Client/Server模式,...

    基于P2P文件传输

    1.      P2P简介

    对等网络P2P(peer-to-peer)技术是一种用于不同计算机用户之间,不经过中继设备直接交换数据或服务的技术,其网络通信方式如下图所示:

    P2P技术打破了传统的Client/Server模式,在对等网络中,每个节点的地位都是相同的,具备客户端和服务器双重特性,可以同时作为服务使用者和服务提供者。

    P2P技术有着广阔的应用领域,目前主要的应用有文件交换、分布式计算、协同工作、分布式搜索和电子商务等。


    2.      主要的P2P模式

          P2P模式的变化经历了集中式、分布式、和混合式3个阶段。P2P技术起源于文件交换技术,在发展过程中,文件交换技术的演变最具代表性,下面介绍P2P模式的几种形式:

    (1)      集中式对等网络。集中式P2P模式由一个中心服务器来负责记录共享信息以及反馈对这些信息的查询。每一个对等实体要对它所需共享的信息以及进行的通信负责,根据需要下载它所需要的其他对等实体上的信息。这种形式具有中心化的特点,但是它不同于传统意义于上的Cleint/Server模式。因为传统意义上的Client/Server模式采用的是一种垄断的手段,所有资料都存放在服务器上,客户机只能被动的从服务器上读取信息,并且客户机之间不具有交互能力;而集中式P2P模式则是所有网上提供的资料都存放在提供资料的客户机上,服务器上只保留索引信息,此外服务器与对等实体以及对等实体之间都具有交互能力。

    (2)      分布式对等网络。在分布式P2P中,对等机通过与相邻对等机之间的连接,遍历整个网络体系。每个对等机在功能上都是相似的,并没有专门的服务器,而对等机必须依靠它们所在的分布网络来查找文件和定位其他对等机。这种无中心、纯分布式系统不再是简单的点到点通信,而是更高效、更复杂的网络通信。

    (3)      混合P2P网络。集中式P2P有利于网络资源的快速检索,并且只要服务器能力足够强大就可以无限扩展,但是其中心化的模式容易遭到直接的攻击;分布式解决了抗攻击的问题,但是又缺乏快速搜索和可扩展性。混合式P2P结合了集中式和分布式P2P优点,在设计思想和处理能力上都进一步的优化。它在分布式模式的基础上,将用户节点能力进行分类,使某些节点担任特殊任务。

    展开全文
  • P2P文件传输和聊天系统[P2PProChatSendFiles.rar]-精品源代码
  • 一个简单的,基于Zeroconf的对等文件传输实用程序,您和您的朋友在同一个局域网中,并且可以彼此通信。 该应用由启发但写在 。 安装 确保 golang-1.8已安装,并且go可执行文件在系统路径中可用。 $GOPATH/bin包含...
  • Figo一个简单的,基于Zeroconf的对等文件传输实用程序,您和您的朋友在同一个局域网中,并且可以彼此通信。 该应用程序受zget启发,但使用Golang编写。 安装Ma Figo一个简单的,基于Zeroconf的对等文件传输实用程序...
  • 文件传输系统必须具备资源和条件,是否满足系统目标的要求,在文件传输的形式中,以独立的软件进行点对点的文件传输。本软件能够点对点的文件传输,还能进行即时的通讯。本文档包涵有代码与各种分析测试报告与可行性...
  • P2P文件共享系统概览

    2009-05-06 22:11:42
    现有P2P文件共享系统的简介 P2P文件共享系统的三个主要问题 搜索与定位 数据传输 信誉、激励及安全相关问题 现在研究问题的总结 P2P文件共享系统测量的相关工作
  • P2P文件传输功能使用 simple-filer(一个JavaScript库), 这也是本人写的一个webRTC工具
  • c#实现P2P文件分享与传输系统  一、模型  P2P的概念大家都不陌生,也就是所谓的“点对点传输”,即不直接通过服务器,在两台或多台客户端之间传输数据,实现信息交流和资源共享。P2P技术已经发展了很多年了,...

    c#实现P2P文件分享与传输系统 

    一、模型

      P2P的概念大家都不陌生,也就是所谓的“点对点传输”,即不直接通过服务器,在两台或多台客户端之间传输数据,实现信息交流和资源共享。P2P技术已经发展了很多年了,虽然理论上已经发展了很多的模型,但在实际的网络环境中(尤其是镇里这种环境),究竟怎样的网络结构才具有较好的稳定性和较高的传输性能,还是有很大的争议,每家做P2P的网络公司都会有不同的见解。当前,P2P技术应用的主要目的还是减轻服务器工作压力,本人不才,之前曾在国内某网络软件公司里担任p2p相关的流媒体项目开发,对于P2P技术所创造的能力和带来的价值深有体会,也曾被它的复杂性所折磨的痛苦不已,不过,这也是我所珍惜的一笔宝贵的知识财富。

      似乎扯远了。。。赶紧回来,前段时间做了一个c#实现p2p文件传输系统的项目。以前都是用c/c++,这还是第一次用c#来做这种项目,由于用c++比用c#要早的多,所以写c#程序不免会带些c++的习惯,不过不影响程序整体。第一步:设计。对于“文件分享和传输”这种典型的p2p应用,可以使用成熟的模型和框架:

      上面这个图里面有几个固定的端点:Peer、Tracker Server、NAT Server和Source Server,还有两个游离的元素:数据和下载节点,它们构成了一个完整的p2p网络。在这个网络中,它们各司其职,维系着网络的运转。

    • Peer 整个系统的核心所在,主要负责资源提供和资源索取,驱动着网络的运行。也只有Peer,是唯一的一个必须存在的元素。
    • Tracker Server 如其名所述,动态、实时地监视着整个网络中peer节点的状态和资源分布,向下载节点提供p2p资源查询的重要功能,通过tracker server,下载节点可以迅速而准确的获取网络中拥有资源的节点列表,展开p2p下载。
    • NAT Server 负责NAT穿透,也形象的称为“打洞”。对于藏在受限型NAT网络后面的节点,不通过NAT Server做穿透的话,是无法和NAT后面的节点进行通信的,而目前大部分人是没有公网IP的,NAT Server对于组建p2p网络十分的重要。对于NAT穿透,我会在后面的文章中解释。
    • Source Server 负责资源提供或资源发布,一般网络公司建立的p2p网络,会有这种服务器来发布需要推广和扩散的资源。

      这个模型基本涵盖了p2p网络架构的主要几个部分,在具体实施的时候会根据不同的资源类型有不同的变化,通常会更加的复杂,当然,也有可能更简单。比如,DHT(Distributed Hash Table) 网络,这种网络,以不需要服务器的参与来完成p2p的查询与传输为主要特点,例如大家常用的eMule中的KAD网络,就是一种DHT网络。但其实,DHT中,是peer节点,负责了Tracker Server和Source Server的工作。也就是peer变得比较复杂,如果把它拆开来看,也基本就是这个模型。Peer的复杂化,可以降低服务器运行压力,但就牺牲了实时性,对于实时性和准确性要求高的应用,例如流媒体,不太适合DHT,当然,这并不妨碍DHT作为辅助手段来探知更多的资源节点。

      我要做的这个“EasyP2P”文件分享与传输系统,目前暂时不需要Source Server,由Peer负责Source Server的功能,也就是资源的发布;Tracker Server负责节点和资源的查询;NAT Server依然负责打洞。于是,变化成如下结构:

    

      这就是EasyP2P系统的模型,接下来,将根据这个模型,来具体设计整个网络的架构和运行流程。


    合作请联系QQ。(转载请注明作者和出处~)

     

    展开全文
  • c#实现P2P文件分享与传输系统 二、设计  在上一篇文章中,介绍了P2P网络的常用模型,并确定了EasyP2P系统的框架,本文将就此设计完成它的主要结构和运作流程。 1. 首先是Tracker Server和Peer这两个最重要的模块...

    c#实现P2P文件分享与传输系统  二、设计

      在上一篇文章中,介绍了P2P网络的常用模型,并确定了EasyP2P系统的框架,本文将就此设计完成它的主要结构和运作流程。

    1. 首先是Tracker Server和Peer这两个最重要的模块:

    • Tracker Server负责Peer的信息的收集和跟踪,并向下载节点提供其他节点的信息,实际上就是维护“Peer<-->Resource”之间的这种映射关系,一般来说,在数据结构上,可以把它设计成一个十字链表,当然,也可以用其他结构。当Peer启动时,向Tracker Server进行汇报,Tracker将信息存入映射表,当Peer退出时,从映射表中清除。
    • Peer主要是驱动下载,当需要下载资源时,向Tracker Server提交要下载的资源信息,Tracker查询之后,返回拥有该资源所的节点列表,Peer便可向其他的节点请求并下载数据,完成p2p下载。

    上图:

     

    2. 文件描述

      P2P系统另一个非常关键的部分就是资源(文件)描述符,它提供某个资源(文件)的简短而详细的描述信息。

    • 首先,一个资源需要进行标识,以区别于其他资源,每个不同的资源都有不同的标识,这里,我们以资源的MD5值来作为该资源的标识(ID)。计算方式是:ID = MD5Hash(资源的所有数据)。
    • 其次,为了支持断点续传以及利于p2p传输,需要对资源进行分块描述。一个完整的资源(文件)可以从逻辑上分为多个“块”,通过对“块”的标志,可以从更细的粒度来描述资源健康程度(也就是下载进度);通过对每个“块”进行校验,还能从更细的粒度防止脏数据对p2p网络的污染。

      之所以说文件描述非常重要,是因为它几乎贯穿了整个p2p传输的过程。一个设计良好的文件描述符,不仅可以详细的标识资源健康度,还能够通过适当的压缩算法节省存储空间。

     

    

      在上图中,我设计了一个双层的文件描述符,Segment层描述整个资源/文件,用于数据校验;Piece层描述一个Segment,用于细化描述。这样做的好处有两个:一是简化了校验信息的粒度,在peer之间只需要传递segment的描述即可;二是由于我们只需要对正在下载的Segment进行描述,因此文件描述符不会占用多少存储空间。

      考虑到NAT Server的特殊性,将单独介绍。


    合作请联系QQ。(转载请注明作者和出处~)

    展开全文
  • c# p2p 文件传输 简单实例

    千次阅读 2007-07-21 07:14:00
    尽管有许多P2P网络不需要索引服务器或中央服务器,各客户机之间可以互相直接通讯,但下面的图1还是显示了P2P网络的基本工作原理,一般来说,P2P概念中包含一台中央索引服务器,这台服务器并不存储有任何文件,它只...
      尽管有许多P2P网络不需要索引服务器或中央服务器,各客户机之间可以互相直接通讯,但下面的图1还是显示了P2P网络的基本工作原理,一般来说,P2P概念中包含一台中央索引服务器,这台服务器并不存储有任何文件,它只存储有登录到该网络上的所有用户的信息、客户端的IP地址以及用户提供的供共享的文件,客户机和服务器使用简单的命令通过报路连接进行通讯。 

      当客户端A想要查找P2P网络上其他客户端提供共享的文件时,系统会执行下面的操作:

       ·客户端A以自己的用户名登录到索引服务器上。

       ·客户端A向服务器注册自己想提供给其他用户共享的文件,以便其他用户能够查找到这些文件。

       ·客户端A向服务器发出申请,查找与一定的输入模式相匹配的文件。

       ·索引服务器在其数据库中搜索给定的文件名,并将搜索到的如下的结果返回给客户端A:

        ·提供该文件的客户端,例如客户端B。

        ·该用户的IP地址。

        ·它搜索到的文件名。




      一旦客户端A选择了下载选项,客户端A就使用搜索返回的IP地址与客户端B建立连接。

       ·一旦成功地建立起一个连接,就可以通知对方开始发送文件了。

       ·下载完成后,应当向索引服务器注册你得到的共享文件的拷贝。

      这样的P2P网络可以用来共享任何类型的文件,它既可以用在局域网上,也可以作在互联网上。

     

    C#语言由于其对网络功能良好的支持,特别是内置地支持TCPListener和TCPClient这二个类,使得利用它开发P2P应用程序变得非常容易。下面就是一个使用C#开发的P2P应用的例子:

    public MyTcpListener(int port) : base(port)
    {

    }
    public void StopMe()
    {
    if ( this.Server != null )
    {
    this.Server.Close();
    }
    }
    }

    public class Transfer
    {
    MyTcpListener tcpl;

    public Transfer()
    {
    OptionsLoader ol = new OptionsLoader();
    int port = 8081;
    if (ol.Port > 0)
    {
    port = ol.Port;
    }
    else
    {
    port = 8081;
    }

    this.tcpl = new MyTcpListener(port);
    }

    public void TransferShutdown()
    {
    tcpl.StopMe();
    }

    public void ListenForPeers()
    {
    try
    {

    Encoding ASCII = Encoding.ASCII;


    tcpl.Start();


    while (true)
    {
    // 在有连接之前,Accept将处于阻塞状态
    Socket s = tcpl.AcceptSocket();
    NetworkStream DataStream = new NetworkStream(s);

    String filename;
    Byte[] Buffer = new Byte[256];
    DataStream.Read(Buffer, 0, 256);
    filename = Encoding.ASCII.GetString(Buffer);
    StringBuilder sbFileName = new StringBuilder(filename);
    StringBuilder sbFileName2 = sbFileName.Replace("/", "//");
    FileStream fs = new FileStream(sbFileName2.ToString(), FileMode.Open, FileAccess.Read);
    BinaryReader reader = new BinaryReader(fs);
    byte[] bytes = new byte[1024];
    int read;
    while((read = reader.Read(bytes, 0, bytes.Length)) != 0)
    {
    DataStream.Write(bytes, 0, read);
    }
    reader.Close();
    DataStream.Flush();
    DataStream.Close();
    }
    }
    catch(SocketException ex)
    {
    MessageBox.Show(ex.ToString());
    }
    }

    public void DownloadToClient(String server, string remotefilename, string localfilename)
    {
    try
    {
    TcpClient tcpc = new TcpClient();
    Byte[] read = new Byte[1024];

    OptionsLoader ol = new OptionsLoader();
    int port = 0;
    if (ol.Port > 0)
    {
    port = ol.Port;
    }
    else
    {
    // 缺省的端口号,可以设置为使用的端口号
    port = 8081;
    }


    // 尝试与服务器连接
    IPHostEntry IPHost = Dns.Resolve(server);
    string []aliases = IPHost.Aliases;
    IPAddress[] addr = IPHost.AddressList;

    IPEndPoint ep = new IPEndPoint(addr[0], port);
    tcpc.Connect(ep);

    // 获得流对象
    Stream s = tcpc.GetStream();
    Byte[] b = Encoding.ASCII.GetBytes(remotefilename.ToCharArray());
    s.Write( b, 0, b.Length );
    int bytes;
    FileStream fs = new FileStream(localfilename, FileMode.OpenOrCreate);
    BinaryWriter w = new BinaryWriter(fs);

    // 读取流对象,并将其转换为ASCII码
    while( (bytes = s.Read(read, 0, read.Length)) != 0)
    {
    w.Write(read, 0, bytes);
    read = new Byte[1024];
    }

    tcpc.Close();
    w.Close();
    fs.Close();
    }
    catch(Exception ex)
    {
    throw new Exception(ex.ToString());
    }
    }
    }

     
    展开全文
  • P2P文件传输系统 客户端-服务器系统的实现,该系统促进了客户端之间的文件传输。 它以C语言实现,并且在此项目中使用了套接字编程和共享内存的概念。
  • p2p文件分享系统

    2019-01-14 17:36:24
    一个类p2p文件传输系统,没有实现NAT穿墙,只能是单点下载实现去中心化,带有VLC播放器可以播放视频,本来是想做一个P2P的视频分享系统,但是实际上并不符合要求可能。可能作为一个课程设计比较符合。
  • 由于P2P文件共享系统具有自组织的特点, 其行为特性很大程度上影响了系统可靠性和性能。为了解这种性质, 利用统计方法研究了Maze系统用户行为特性分布模型及特点。结论表明, 用户上传流量和下载流量、上传带宽和下载...
  • P2P模式文件传输网络应用的开发

    千次阅读 2015-06-22 23:56:45
    我设计的p2p系统包括用户登录模块、注册资源模块、下载资源模块; 服务端维护用户和资源信息,包括两张表(如下),其中src_name保存的是资源在注册用户机器上的绝对路径; User +-------+-------------+------+-...
  • tcp文件传输系统 课程设计全套 附带源代码 课程设计系列
  • 北京大学硕士学位论文 文件共享系统 节点发现与通讯策略 文件共享与传输策略

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,084
精华内容 8,033
关键字:

p2p文件传输系统