请问 p2p 的原理? (45分)

  • 主题发起人 主题发起人 chy578
  • 开始时间 开始时间
C

chy578

Unregistered / Unconfirmed
GUEST, unregistred user!
  最近看到网上有很多P2P的软件,也很想自己写一个。 
  不知道用DELPHI上的控件能行否?
  还有就是想知道P2P是怎么样穿过网关的? 

  局域网内部的IP,是不能被动连接的, 可是P2P 通过一个服务器就做到了这一点
到是要怎么做的。 难道说需要协议底层的编程呢?

   分不够一定可以加。。。。。。。。。。。
  

     
 
当然可以
pp就是delphi做的
 
但是如果2台机器都在不同的局域网内,就比较麻烦,估计要总服务器转发数据。
 
我看要是多懂点网络协议就好办多了。。。。 
DFW们去补习吧:

http://www.uj8ii1.chinaw3.com/wljc/jichuzs/router/router.htm

这里是路由器原理p2p 的要点尽在其中。
 
gz,我也发过类似的贴子
http://www.delphibbs.com/delphibbs/dispq.asp?lid=998828
 
风之彼端的帖子上说的很清楚了,不了解的去看看吧
依 风之彼端思路推的话,服务器端是必要的
事实上P2P软件是要服务器的
 
点对点技术可以这么说吧,使得互联网真正反朴归真。
p2p可以不需要服务器端,这是肯定的,只是用了服务器端的话,哪样就更好管理那些所有
使用同一个p2p软件的人,你完全可以用ip地址去访问远程的机器,而使用服务器端就可以
让一个人用另一个人的id号码访问它的机器,而不用去记忆那些单调的ip。
在delphi里面,我认为用UDP协议的控件可以实现这个功能,只是它传输的数据量并不是很
大。FastNet->NMUDP控件试试看。
 
如果要访问不同网断的主机A,B,我想一定是要通过服务器,
  A要通过服务器得到通往B的路由器的物理地址,然后找到B。
  B到A也是如此,
  在这个过程中IP 只是一个条件,物理地址才是最重要的。。
  所以说不可能通过应用层的编程实现。可能要到网络层才能实现。

应该要用到以下的协议:  
 地址转换协议ARP(Address Resolution Protocol)
 反向地址转换协议RARP(Reverse Address Resolution Protocol)

我想P2P程序要想做好很难,但只是要想实现她,也不会太难了。

我看从技术上讲,国内P2P软件没有一个比得上 eDonkey 。
外观做得好有什么用? 结果也是绣花枕头一包草。




 
但freenet就没有服务器
 
我想,如果不用服务器的话,那么没有固定ip,或者说不在同一个防火墙后面,应该是没法
使用的.
 
集成一下dns2go之类的动态域名功能不行吗?
 
我来说算了,就是IP+port = 子网内的主机。 就这么简单。
 
接受答案了.
 
后退
顶部