网游更新平台介绍及下载(已开源)

来源:互联网 发布:淘宝网上卖家中心在哪 编辑:程序博客网 时间:2024/04/30 22:59

我们开发了一个基于BT的互联网文件下载和更新系统。

BT的优点:多个用户下载同一个源的时候,用户之间可以互通有无、互相提供对方没有的数据块。这可以减轻服务器压力,提高分发速度。

BT的缺点:其种子文件的格式无法适应在游戏更新时,往往只有小部分数据(某些文件或文件的某些块)需要下载的情况。因为它在生成种子文件时,是把多个文件连接成为一个不间断的"字节流",然后按块生成hash。当某些文件改变时,无法通过新旧种子文件的比对快速计算出哪些块需要更新。

我们的改进:我们改进了种子文件的格式,改进之后的格式是每个文件拥有自己的hash,而不是所有文件的hash串在一起。这样当游戏更新时,能够通过新旧种子文件的快速对比,计算出需要下载的块,然后下载需要更新的块数据再应用到相应的文件即可完成更新,这大大减小了需下载的数据。其它方面的改良都是围绕更新而进行(如临时文件功能等)。

系统在标准BT协议的基础上改进而来,充分利用了BT成熟稳定快速的特点,因此多数概念与BT一样。包括种子的概念、Tracker服务器以及P2P数据输等。

本系统包括三个部分:服务器、客户端和控制界面程序。

服务器: 是一个Windows服务,提供种子文件的存取/管理/分发,和节点的注册(即Tracker)等功能。

客户端(下载核心): 是一个Windows服务,提供所有网络通信和文件读写功能。包括制作/上传/下载种子文件、下载/更新/上传游戏数据等等。

控制界面:是一个Windows界面程序,提供对下载核心的操作界面。

本系统不依赖其它任何的库或软件,体积小巧,运行稳定,拥有众多为游戏下载/更新而设计的特性(如自动补种等)!

-----------------

系统主要特点:
1、采用C语言设计,使用Windows完成端口技术,系统速度快而且资源占用较少;   
2、采用单一主线程和多个辅助线程的设计,系统运行更加稳定可靠;   
3、合理且简单可靠的设计,包括任务分类、任务排队及优先级安排等等;   
4、相当完善的限速和下载优先级模式的设计和实现;   
5、更新时可以将数据存入到一个临时文件,之后再一次性转储;   
6、当一个资源缺少完整的来源时,自动唤醒专门的供种服务器;   
7、完善的测试以保证系统可用性,杜绝困扰普通P2P下载软件的“99%”问题;   
8、.....

 

 开源地址:https://github.com/zhaozongzhe/gmDev

 

 

原创粉丝点击