91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2.17MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2023-09-11
  • 語言: 其他
  • 標(biāo)簽: linux??C??

資源簡介

BT下載軟件的源代碼和文檔,linux c程序設(shè)計(jì)

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?“parse_metafile.h“
#include?“bitfield.h“

extern?int??pieces_length;
extern?char?*file_name;

Bitmap??????*bitmap?=?NULL;?????????//?指向位圖
int?????????download_piece_num?=?0;?//?當(dāng)前已下載的piece數(shù)?

//?如果存在一個(gè)位圖文件則讀位圖文件并把獲取的內(nèi)容保存到bitmap
//?如此一來就可以實(shí)現(xiàn)斷點(diǎn)續(xù)傳即上次下載的內(nèi)容不至于丟失
int?create_bitfield()
{
bitmap?=?(Bitmap?*)malloc(sizeof(Bitmap));
if(bitmap?==?NULL)?{?
printf(“allocate?memory?for?bitmap?fiailed\n“);?
return?-1;
}

//?pieces_length除以20即為總的piece數(shù)
bitmap->valid_length?=?pieces_length?/?20;
bitmap->bitfield_length?=?pieces_length?/?20?/?8;
if(?(pieces_length/20)?%?8?!=?0?)??bitmap->bitfield_length++;

bitmap->bitfield?=?(unsigned?char?*)malloc(bitmap->bitfield_length);
if(bitmap->bitfield?==?NULL)??{?
printf(“allocate?memory?for?bitmap->bitfield?fiailed\n“);?
if(bitmap?!=?NULL)??free(bitmap);
return?-1;
}

char?bitmapfile[64];
sprintf(bitmapfile“%dbitmap“pieces_length);

int??i;
FILE?*fp?=?fopen(bitmapfile“rb“);
if(fp?==?NULL)?{??//?若打開文件失敗說明開始的是一個(gè)全新的下載
memset(bitmap->bitfield?0?bitmap->bitfield_length);
}?else?{
fseek(fp0SEEK_SET);
for(i?=?0;?i?bitfield_length;?i++)
(bitmap->bitfield)[i]?=?fgetc(fp);
fclose(fp);?
//?給download_piece_num賦新的初值
download_piece_num?=?get_download_piece_num();
}

return?0;
}

int?get_bit_value(Bitmap?*bitmapint?index)??
{
int???????????ret;
int???????????byte_index;
unsigned?char?byte_value;
unsigned?char?inner_byte_index;

if(index?>=?bitmap->valid_length)??return?-1;

byte_index?=?index?/?8;
byte_value?=?bitmap->bitfield[byte_index];
inner_byte_index?=?index?%?8;

byte_value?=?byte_value?>>?(7?-?inner_byte_index);
if(byte_value?%?2?==?0)?ret?=?0;
else????????????????????ret?=?1;

return?ret;
}

int?set_bit_value(Bitmap?*bitmapint?indexunsigned?char?v)
{
int???????????byte_index;
unsigned?char?inner_byte_index;

if(index?>=?bitmap->valid_length)??return?-1;
if((v?!=?0)?&&?(v?!=?1))???return?-1;

byte_index?=?index?/?8;
inner_byte_index?=?index?%?8;

v?=?v?< bitmap->bitfield[byte_index]?=?bitmap->bitfield[byte_index]?|?v;

return?0;
}

int?all_zero(Bitmap?*bitmap)
{
if(bitmap->bitfield?==?NULL)??return?-1;
memset(bitmap->bitfield0bitmap->bitfield_length);
return?0;
}
?
int?all_set(Bitmap?*bitmap)
{
if(bitmap->bitfield?==?NULL)??return?-1;
memset(bitmap->bitfield0xffbitmap->bitfield_length);
return?0;
}

void?release_memory_in_bitfield()
{
if(bitmap->bitfield?!=?NULL)?free(bitmap->bitfield);
if(bitmap?!=?NULL)??free(bitmap);
}

int?print_bitfield(Bitmap?*bitmap)
{
int?i;

for(i?=?0;?i?bitfield_length;?i++)?{
printf(“%.2X?“bitmap->bitfield[i]);
if(?(i+1)?%?16?==?0)??printf(“\n“);
}
printf(“\n“);

return?0;
}

int?

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件???????5422??2008-01-23?17:53??源代碼_BT下載程序\bitfield.c

?????文件???????1111??2008-01-23?17:53??源代碼_BT下載程序\bitfield.h

?????文件????????223??2008-01-23?17:53??源代碼_BT下載程序\bterror.c

?????文件????????925??2008-01-23?17:53??源代碼_BT下載程序\bterror.h

?????文件??????27176??2008-01-23?17:53??源代碼_BT下載程序\data.c

?????文件???????2779??2008-01-23?17:53??源代碼_BT下載程序\data.h

?????文件????????698??2008-01-23?17:53??源代碼_BT下載程序\log.c

?????文件????????245??2008-01-23?17:53??源代碼_BT下載程序\log.h

?????文件???????1258??2008-01-23?17:53??源代碼_BT下載程序\main.c

?????文件????????310??2008-01-23?17:53??源代碼_BT下載程序\Makefile

?????文件??????23106??2008-01-23?17:53??源代碼_BT下載程序\message.c

?????文件???????1460??2008-01-23?17:53??源代碼_BT下載程序\message.h

?????文件??????11606??2008-01-23?17:53??源代碼_BT下載程序\parse_metafile.c

?????文件???????1369??2008-01-23?17:53??源代碼_BT下載程序\parse_metafile.h

?????文件???????4230??2008-01-23?17:53??源代碼_BT下載程序\peer.c

?????文件???????3455??2008-01-23?17:53??源代碼_BT下載程序\peer.h

?????文件??????15738??2008-01-23?17:53??源代碼_BT下載程序\policy.c

?????文件???????1155??2008-01-23?17:53??源代碼_BT下載程序\policy.h

?????文件???????5443??2008-01-23?17:53??源代碼_BT下載程序\sha1.c

?????文件????????996??2008-01-23?17:53??源代碼_BT下載程序\sha1.h

?????文件???????1363??2008-01-23?17:53??源代碼_BT下載程序\signal_hander.c

?????文件????????224??2008-01-23?17:53??源代碼_BT下載程序\signal_hander.h

?????文件??????13921??2008-01-23?17:53??源代碼_BT下載程序\torrent.c

?????文件????????327??2008-01-23?17:53??源代碼_BT下載程序\torrent.h

?????文件??????11458??2008-01-23?17:53??源代碼_BT下載程序\tracker.c

?????文件???????1556??2008-01-23?17:53??源代碼_BT下載程序\tracker.h

?????文件?????227011??2008-01-23?17:53??源代碼_BT下載程序\ttorrent

?????文件????1736192??2008-01-23?17:51??BT軟件下載開發(fā)完整版-00.doc

?????文件????1602048??2008-01-23?17:52??BT軟件下載開發(fā)完整版-01.doc

?????目錄??????????0??2008-11-26?14:04??源代碼_BT下載程序

............此處省略3個(gè)文件信息

評論

共有 條評論