13.4.8缓冲管理模块的设计和实现.docVIP

  • 15
  • 0
  • 约7.72万字
  • 约 44页
  • 2016-11-06 发布于天津
  • 举报
13.4.8缓冲管理模块的设计和实现.doc

13.4.8 缓冲管理模块的设计和实现 缓冲管理模块维护一个大小为16MB的缓冲区(大小可调整),将下载到的数据先保存在缓冲区中,在达到一定的数值时再将数据写入硬盘的文件中。peer请求数据时,先在缓冲区中寻找,若缓冲区中不存在所请求的数据,则读文件并把请求数据所在的piece预先读入到缓冲区中。除了管理缓冲区,本模块还负责创建待下载的文件,把下载到的piece写入文件,在peer请求数据时读文件。本模块由data.h和data.c构成。 data.h #ifndef DATA_H #define DATA_H #include peer.h // 每个Btcache结点维护一个长度为16KB的缓冲区,该缓冲区保存一个slice的数据 typedef struct _Btcache { unsigned char *buff; // 指向缓冲区的指针 int index; // 数据所在的piece块的索引 int begin; // 数据在piece块中的起始位置 int length; // 数据的长度 unsigned char in_use; // 该缓冲区是否

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档