最近开发个基于校园网络的P2P软件,需要实现断点传输功能,首先对P2P的流程不是很清楚,希望有朋友能告诉我,让我也成为进步青年。我知道的资料告诉我P2P是先让客户端1发送请求到客户端2,请求未果,在想服务端发送请求,由服务端向客户端2发送请求,然后客户端2回应,到这里我就不明白了,这样还是不能让客户端1和客户端2通信呀??
关于断点传输,我知道两种方法:一。写配置文件;二。把配置文件和下载文件合并。不知道哪种方法比较好实现呢?要想多线程的断点传输文件,是不是需要把文件一次读入内存呢,这样的话会不会占用很大的内存呢?有没有更好的方法实现呢?下载完文件后怎样安顺序把它们合并呢?我渴望大家踊跃的讨论,你们的每一句话都是我宝贵的资源,谢谢!!!!!!!

解决方案 »

  1.   

    客户端1和客户端2有可能不在一个网络, 或者有可能通过代理,也有可能是通过NAT. 这种情况就只能连接就是单向, 即只能它连接别人, 而不能被别人连接
      

  2.   

    P2P软件?
    需要Index服务器,用来登记客户情况和资源分配,但服务器是不进行数据转发的P2P客户之间的数据传输有主动和被动2种,因为内网和公网的不同
    P2P之间还有获得源的方法:通过Index服务器(主动获取)和其他P2P客户(来源交换)过程上比较复杂,自己研究吧http://lysoft.7u7.net
      

  3.   

    听说用DELPHI的SEVER控件架构的服务器的最多只能带20-30个客户端,否则会出现问题。
    不知道是不是属实,难道要调用WINDOWS API写服务器么?
      

  4.   

    我现在的socket高峰的时候已经连到了257
      

  5.   

    http://www.ppcn.net/list.aspx?CID=2
    参考这里,
      

  6.   

    提个建议,由于UDP的文件传输算法比较复杂,最好用UDP实现P2P后,采用TCP连接,这样实现断点文件传输比较容易了,我开始也是用UDP传文件,中间很多地方容易错了
      

  7.   

    http://www.delphibox.com/article.asp?articleid=1993