摘要:
axel_do主体部分,尝试从多个连接select方式去读取数据,如果读取失败或者连接超时就重新连接。 下面是代码分析.//下载的主循环 void axel_do( axel_t *axel ) { fd_set fds[1]; int hifd, i; long long int remaining,size; struct timeval timeval[1]; /* Create statefile if necessary */ //如果到了保存状态的时间,保存当前状态到状态文件 if( g... 阅读全文
摘要:
usr/local/axel/bin/axelUsage: axel [options] url1 [url2] [url...]--max-speed=x -s x Specify maximum speed (bytes per second)--num-connections=x -n x Specify maximum number of connections--output=f -o f Specify local output file--search[=x] -S [x] Search for mirror... 阅读全文
摘要:
三.分析函数axel.cview plainprint?axel_t*axel_new(conf_t*conf,intcount,void*url);/***************************************************************************function:Createanewaxel_tstructure。*根据conf中的内容,为每个下载连接创建一个axel_t数据结构在这个函数中,*其实已经为每个连接创建好连接,并且获取到要下载的文件信息了.*param:*conf_t*conf:存储axel的配置信息,axel会尝试从本地配 阅读全文
摘要:
一. Axel通过打开多个HTTP/FTP连接来将一个文件进行分段下载,从而达到加速下载的目的. 它支持断点续传功能.其官方主页是:http://axel.sourcearchive.com. 源码包下载链接:http://axel.sourcearchive.com/downloads/2.4/axel_2.4.orig.tar.gz二.分析Axel的数据结构 Axel中共有7类用户自定义的数据结构,他们分别是:message_t,http_t,ftp_t,conn_t,conf_t,search_t,axel_t: 1.message_t:这是一个典型的通用链表结点类型的结构体... 阅读全文