search.h search.c

如果使用Axel时输入了 -S [x]参数的话
axel就会在下载之前去 www.filesearch.com 查找对应要下载文件的镜像站点,并且根据输入的X的值,获取前X个镜像文件的URL地址。

search.c就是实现这些功能的地方.
  1. int search_makelist( search_t *results, char *url );
复制代码
首先连接文件源地址,获取文件信息,失败的话就返回。
然后通过要下载的文件信息,构造一个访问 www.filesearching.com 的URL地址。
发送http请求到这个URL地址。
然后循环中读取http返回页面中的内容,从中解析获取到的镜像文件的URL地址,存储到results数组中。
  1. int search_getspeeds( search_t *results, int count );
复制代码
已经获取到镜像文件的URL地址了,然后通过多线程方式,在每个线程中去访问每一个镜像文件,测试该站点的访问速度。
访问速度是根据访问时间计算出来的,时间越大,速度越大。(这个速度越大,说明响应慢)
  1. void search_sortlist( search_t *results, int count );
复制代码
通过qsort来对N个镜像站点进行排名,按照访问速度,根据原理来分析,应该是speed值大,说明响应慢,速度小,这样去排序。
但是我对于快排函数int search_sortlist_qsort( const void *a, const void *b )
的实现m没太看明白,希望有朋友帮忙解释。

你可能感兴趣的:(search.h search.c)