用C语言开发一个BT下载软件 (四) ------ 代码实现-1-种子文件解析模块
生活随笔
收集整理的這篇文章主要介紹了
用C语言开发一个BT下载软件 (四) ------ 代码实现-1-种子文件解析模块
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//parse_metafile.h#ifndef PARSE_METAFILE
#define PARSE_METAFILE// 保存從種子文件中獲取的tracker的URL
typedef struct _Announce_list {char announce[128];struct _Announce_list *next;
} Announce_list;// 保存各個待下載文件的路徑和長度
typedef struct _Files {char path[256];long length;struct _Files *next;
} Files; int read_metafile(char *metafile_name); // 讀取種子文件
int find_keyword(char *keyword,long *position); // 在種子文件中查找某個關鍵詞
int read_announce_list(); // 獲取各個tracker服務器的地址
int add_an_announce(char* url); // 向tracker列表添加一個URLint get_piece_length(); // 獲取每個piece的長度,一般為256KB
int get_pieces(); // 讀取各個piece的哈希值int is_multi_files(); // 判斷下載的是單個文件還是多個文件
int get_file_name(); // 獲取文件名,對于多文件,獲取的是目錄名
int get_file_length(); // 獲取待下載文件的總長度
int get_files_length_path(); // 獲取文件的路徑和長度,對多文件種子有效int get_info_hash(); // 由info關鍵詞對應的值計算info_hash
int get_peer_id(); // 生成peer_id,每個peer都有一個20字節的peer_id// 釋放parse_metafile.c中動態分配的內存
void release_memory_in_parse_metafile();
// 調用本文件中定義的函數,完成解析種子文件
int parse_metafile(char *metafile);#endif
總結
以上是生活随笔為你收集整理的用C语言开发一个BT下载软件 (四) ------ 代码实现-1-种子文件解析模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: REDIS HGETALL按序输出结果
- 下一篇: isis的报文