今天是:  | 网站首页 | 网络电视 | 网络电话 | 手机电视 | 手机电影 | 精彩视图 | 软件下载 | 在线论坛 |   

网络电视 网络电话 手机电视 精彩视图 软件下载 在线论坛


您现在的位置: 免费网络电视 免费网络电话 手机电视 >> 网络电视 >> 网络电视知识P2P技术 >> 文章正文  
全球最小的一款P2P软件——eMuleBT软件框架分析
作者:佚名    文章来源:不详    点击数:    更新时间:2007-12-26

  eMuleBT是一款开源的软件项目(www.emulebt.com),俗称“变态驴”。因为同时集成了eMule和BT的功能,容量仅为460K,从而引起了一些人的注意。因为对eMule和BT的功能比较感兴趣的人也确实不少,所以小记也花了不少工夫请专业人士对其进行了分析,现对其表叙如下,以飨读者。

  eMuleBT是完全安装C++的思想来写的一款软件,这样他的类封装是比较好的,从整个软件构架上来说,就显得特别清晰了。

  软件框架:

  eMuleBT分为两个框架,一个是UI,也就是用户操作界面,一个是内核,也就是实现eMule协议,BT协议通讯的核心部分。

  UI部分是我们用户看到了比如“传输”,“搜索”,“共享”等操作界面,内核是我们通过UI来操作的,比如我们通过界面操作新加一个下载任务,任务在我们的UI上表现出来,其实是由内核来驱动的。

图1 eMuleBT的UI

  为什么要分开呢?从大量的实际软件开发过程中来说,我们经常碰到对软件界面的需求改变,而实际的功能却不需要发生大的改变。很常见的例子是A公司需要的是一款针对娱乐用户的产品,而B公司需要的是一款针对企业用户的产品。 但两者的共同需要是要下载这些文件。这样的结构有利于:

  1)  分工合作,可以适合项目人员各司其职;

  2)  结构清晰,有利于软件后期维护;

  3)  模块化设计,有利于软件扩充;

  4)  分开实现,有利于软件各部分移植

  结构图如下:

  界面部分相对简单一些,我们先说说核心部分

  核心的结构我们用以张图来表示是比较清楚的:

  eMuleBT目前只对eMule和BT的核心做了比较好的封装,而http协议只是做了一个简单的封装,比如对BT种子的下载他用的就是自己的http类

  我们对整个emulebt进行了分析,大致可以把他的系统结构分成罗列成上面的平面组图关系。

  现在我们分别介绍一下:

  BT内核:是对BT协议进行封装的一个类结构,比如握手,请求包等协议交互的总结构,而BT协议需要对文件操作的时候,就会使用公共的文件类来操作。

  eMule内核:是对emule进行封装的一个类结构,比如和服务器的通讯,请求。而为了下载减少磁盘的损耗而使用了cache技术,就会用到cache类来操作。

  http内核:从技术上来分析,emulebt也有给http,ftp,mms,rtsp,p2s留有开发接口的,但实际只是预留了程序接口规范,并没有代码化,其中原因不得而知。

  回调类:eMuleBT的代码在开发的时候,估计是由两部分人员完成的,一部分是UI部分,一部分是由内核部分。在内核部分留有大量的回调入口,这样比较方便UI用户在开发的时候进行扩展,我们经常遇到文件下载完成的时候,我们操作界面需要对文件进行其它的操作,比如移动,播放等等。而预留的回调入口就显的非常有用了。

  配置类:eMuleBT使用的是单执行文件的发行模式,她所有的默认配置全部都是由程序第一次运行的时候产生的。生成的配置文件会右配置类来支配给内核,比如同时连接数,最大,最下的下载速度等等。

  Emulebt支持多语言版本,在lang目录下会产生两个标准的语言版本,一个是英语版本,一个是简体中文版本。按照这两个标准版本就可以改写出其它的语言版本。

  状态类:状态类是对软件的执行的状态进行检测和显示的类,比如下载的文件数量,字节数量,上传的数量,表现如下:

  定时器类:主要用户软件内需要定时更新或操作的事务管理类,它下辖的有UPNP类,线程类,和host类.

  p2p技术里面经常把UPNP用来实现tcp直传的一种技术,但不同的设备有细小的差别,而且不同的设备支持的方法还不太一样,在软件启动的过程中,为了节约系统开销和同步,所以使用了定时器类来实现uPNP的寻址和交互。

  有经验的软件开发者都知道,在windows系统下很多工作都是单步执行的,比如实现一个dns到Ip地址转换的过程,这种操作是比较耗软件资源的,如果使用线程来做会稍微改善一下这种局面,当然也还有更好的方法,但emulebt看来还没有使用另外的方法。

  Cache类:在p2p软件互相传输数据的时候,必定会对硬盘进行非常频繁的读写操作,而好的软件一定需要减少这种操作模式,emulebt也不例外,为了保护好硬盘,程序做了cache类,把常用数据放在了内存里面,读写既减少了磁盘操作次数,还提高了效率。

  共享类: emule和bt的共享机制不太一样,因而在共享类下面,eMuleBt又分出了emule的共享类和bt的共享类。Emule的共享是9m一个块的共享,而且他的共享还必须把hash值发到ed2k server上去(当然kad是另一种实现方式),而bt是由torrent文件决定了分块的大小和hash值。弄清楚这点后,也就明白了为什么共享类为什么要线程类了。Emule会把下载的完整包再提交给ed2k server,同时在UI里面对共享的内容负责显示。

  任务类:是一个比较常用的类,emulebt对下载上传都看成一个任务,用户在操作界面对下载的停止,开始,排序都是对任务的操作。任务类和文件类之间联系的也是比较紧密的。

  文件类:文件类是对文件操作的一个类,emule和bt都对这个类为基础实现了文件的操作,他封装了ntfs,fat等不同的文件系统的操作模式。

  还有比较多的东西没有介绍完,比如emule类和bt类的内部细节,比如她的socket类都是我们感兴趣的….用户如果有兴趣,可以到eMuleBT官方网站(www.emulebt.com)上下载最新的版本测试:

  我们将继续对这款软件进行分析

发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
 
  • 上一篇文章:

  • 下一篇文章:
  • 免费网络电视.在线网络电视.网上电视直播.P2P网络电视
    91717网络电视提供:PPstream、MOPITV(猫扑;猫眼)、PPlive、TVkoo(酷视)等网络点事,在线观看.
    观看我们提供的所有在线P2P网络电视 须要安装网视解码器(自动跳出安装提示)。
    速度快:只需不到40秒的缓冲时间就能收看,越看越流畅!
    节目全:电影、电视剧、韩剧、动漫、MV等等,应有尽有。
    使用时数据缓存在内存里,不在硬盘 上存储数据,对硬盘无任何伤害!
    具有用户越多播放越稳定,支持数万人同时在线的大规模访问等特点。
    电影在线观看、电视剧在线观看、动漫在线观看、韩剧在线观看、小品在线观看、相声在线观看、游戏节目等等等等应有尽有。 http://www.91717.net
    网络电视的出现使得电影网站走向尽头。网络电视是一种时代的趋势。
    界面最美观的网视:ppstream 画质最清晰的网视:MOPITV(猫扑,猫眼)
    公认的最好的网视:PPlive 电视剧最多的网视:TVKOO(酷视)
    相关新闻
    信产部总结互联网发展矛盾:P2P妨碍其他
    P2P拖运营商盈利后腿遭批
    中国各大P2P流媒体软件用户覆盖数稳定增
    P2P占全球夜间95%网络带宽 Skype占VOIP
    9月份10大恶意软件排名出炉 P2P高居榜首
    中国电信称P2P有利有弊 将利用P2P提供媒
    美国NBC十月推电视剧免费下载服务 采用
    PPLive全线出击网络视频广告
    网通考虑P2P商业模式 正研究对其版权加
    风行在线罗江春:“马拉松”才刚刚开始
    论坛新帖
    新 闻 TOP 10
    固顶文章iSuppli:中国IPTV部署1004
    固顶文章香港拟发电信全业务牌1002
    固顶文章数字电视、IPTV增速双1004
    固顶文章信产部总结互联网发展1010
    固顶文章IPTV推进过程遭到各地1005
    固顶文章财经时报:“光纤到户1003
    固顶文章《传媒主张》:IPTV最1005
    固顶文章交互式网络电视(IPTV1008
    固顶文章P2P拖运营商盈利后腿遭1005
    固顶文章中国各大P2P流媒体软件1004
    - 网站地图 - 设为首页 - 自助友情链接 - 申请链接 - 联系我们 - 网站登陆 -
    www.91717.net 网络电视 网络电话 站长QQ 283541054 (细水长流)
    QQ群号码:免费网络电话 32922325 32921787 免费网络电视 32922468 32922587
    Copyright◎2005-2007 91717.net All Rights Reserved 闽ICP备05021722号