emule驴子里 buddy:没有.所以连接不上.有哈办法能连接上?

BUDDY素个啥东西呢?怎么能让它连接上呢?请各位会的朋友告诉偶下吧... BUDDY素个啥东西呢?怎么能让它连接上呢?请各位会的朋友告诉偶下吧 展开
 我来答
刘伟华
2007-12-19 · TA获得超过113个赞
知道小有建树答主
回答量:92
采纳率:0%
帮助的人:91.1万
展开全部
内网计算机(也就是LowID),都通过至少一层网关连接互联网,没有自己的独立IP和端口(别人看到的你的IP是网关的),所以别人无法主动与你建立连接,两个内网用户自然也就无法连通,更无法实现传输。

但是内网计算机可以主动连接其他有独立IP的外网计算机,再通过udp协议通讯的时候,因为udp是非持续连接的,所以网关那边会给你开一个临时端口,让你能够接受外网计算机返回给你的udp包,如果一段时间内没有传输,临时端口便会取消。

这个步骤就可有空子钻,比如A和B 两台内网计算机,都同时连接外网计算机C进行udp协议的传输,A和B分别用到了临时端口Ap和Bp,这个时候通过Ap就可以主动连接到A,Bp就可以主动连接到B,所以C所要做的,就是把Ap告诉B,把Bp告诉A。AB通过从C那里知道的Ap和Bp,即可实现UDP直连。只要连接不断,临时端口就一直有效,传输期间,C什么都不需要参与,这个过程,俗称打洞,C帮AB打好洞,AB就可以自己玩了。

当然我这个是最简单的讲法,根据不同的网关设备,还是有很多不同情况需要解决。

有人怕Low2Low会耗HighID资源,这个多虑了,不是说不耗,而是耗的根小,C只不过初期接受一下AB发来的UDP请求,并向双方返回一次数据,打洞成功之后就再也没事了。本身UDP传输就耗的资源很少,这一两次UDP传输相对于连接频繁的eMule,可以忽略不计了。

更要说明的一点就是,我们目前测试用的内网穿透eMule,都是连接的我们自己的一台服务器用来做“C”,帮LowID打洞,没有依赖任何其他HighID,而我们那台破PIII服务器,目前同时处理着几百个low2low的连接,也几乎没占多少服务器资源。

当然将来最好的方案,是可以让eMule的Low2Low基于Kad来进行,这样可以不依赖任何第三方的服务器,独立的发展下去。基本原理是LowID利用自己的buddy来做帮助打洞,每个HightID只会帮1个LowID做buddy,所以不会增加HighID的负担。这方面我们也作了研究,不日也准备进行测试。

内网穿透目前是一套成熟的方案,QQ,BC等都早已开始大规模使用。为什么eMule到现在为止才开始由我们开始测试内网穿透呢?主要是因为eMule的开发长期以来都由老外们主导,国外大都由公网IP,Low2Low对他们来说,太不重要。而我们自己也走了很多的弯路,去年尝试通过内置VNN来解决问题,但VNN相对eMule,是一套太大的解决方案,需要注册和安装虚拟网卡才能使用。虽然我们后来的版本自动完成了这2步,但是VNN的服务器还是无法拖起eMule这巨大的用户群进行这样复杂的应用。

所以这次痛定思痛,自己从头开始开发,主要就是让使用tcp协议传输数据的eMule可以利用到UDP直连,并且解决各种各样的细节问题(因为eMule之前都没考虑到low2low问题)。
国外也有个neo版本的eMule,尝试利用kad解决Low2Low的问题,但实际使用效果不好。我们在开发过程中也想参考,不过基本没参考成,代码太复杂太乱。最后还是根据自己的思路自己写的,会比neo的思路更清晰些。

这次的内网测试版本,是我们VeryCD软件开发组近几个月努力得来的一点小成绩,希望能够早日正式发布。我虽不是软件开发,但有幸参与这个过程。所以把自己所理解的东西向大家解释一下。虽然会有纰漏,但不熟悉相关技术的同志,应该更容易理解。

最后补充,eMule既然是开源软件,这项技术成熟之后,必然可以共用,对所有eMule用户,都能有所帮助
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式