• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

zhaozongzhe

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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

我们开发了一个基于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

posted on 2012-12-06 17:53  zhaozongzhe  阅读(377)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3