SimpleTorrent
|
描述 peer 信息 更多...
#include <peer.h>
成员变量 | |
int | fd |
连接套接字 | |
char | ip [16] |
ip 地址字符串, 最长不过 |255.255.255.255| + '\0' = 16 | |
unsigned short | port |
端口, 本地字节序 | |
uint32_t | addr |
ip 的整数形式,用于地址比较,直接来自 sin_addr,故是网络字节序 | |
unsigned char * | bitfield |
piece 拥有情况 | |
int | is_choked |
是否阻塞 peer | |
int | is_interested |
是否对 peer 感兴趣 | |
int | get_choked |
是否被 peer 阻塞 | |
int | get_interested |
peer 是否感兴趣 | |
int * | requested_pieces |
-1 terminated | |
int * | requested_subpieces |
-1 terminated | |
int | requesting_index |
请求的分片号,-1 为无效。 | |
int | requesting_begin |
请求的子分片偏移量(固定长度) | |
int | contribution |
检查周期内的数据贡献 | |
unsigned | wanted |
期望接受的字节数 | |
struct PeerMsg * | msg |
记录尚未读完的 msg | |
time_t | start_time |
记录发送请求的时刻,用于计算分片下载速度,不使用分片的 time 是因为后者可能因超时被更新。 | |
double | speed |
下载速度 | |
描述 peer 信息
peer 只记录单次分片请求的信息。因为对单个连接上的数据传输,没有并发的可能, 只能顺序地读取,所以较为稳定的一次请求一次读取的操作,虽然简单,也是合理的。