SimpleTorrent
成员变量
Peer结构体 参考

描述 peer 信息 更多...

#include <peer.h>

Peer 的协作图:
Collaboration graph
[图例]

成员变量

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 PeerMsgmsg
 记录尚未读完的 msg
 
time_t start_time
 记录发送请求的时刻,用于计算分片下载速度,不使用分片的 time 是因为后者可能因超时被更新。
 
double speed
 下载速度
 

详细描述

描述 peer 信息

peer 只记录单次分片请求的信息。因为对单个连接上的数据传输,没有并发的可能, 只能顺序地读取,所以较为稳定的一次请求一次读取的操作,虽然简单,也是合理的。

注解
请求报文的传播延迟无法重叠,还是会有效率上的损失。

该结构体的文档由以下文件生成: