摘要: 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... 阅读全文
posted @ 2012-08-06 20:10 家春秋东 阅读(588) 评论(0) 推荐(0) 编辑
摘要: 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... 阅读全文
posted @ 2012-08-06 19:55 家春秋东 阅读(538) 评论(0) 推荐(0) 编辑
摘要: 三.分析函数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会尝试从本地配 阅读全文
posted @ 2012-08-06 18:57 家春秋东 阅读(586) 评论(0) 推荐(0) 编辑
摘要: 一. 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:这是一个典型的通用链表结点类型的结构体... 阅读全文
posted @ 2012-08-06 18:56 家春秋东 阅读(679) 评论(0) 推荐(0) 编辑
摘要: 此文主要分析libev 的设计架构与算法实现,阅读这篇文章之前,你需要对libev 的使用有大致的了解;libev 提供了很多watcher 供开发者使用 ,以下仅对最重要最常用的几个watcher 机制进行分析,从中我们可掌握整个libev的设计思想,如果你想了解更多,可查阅libev的相关代码或文档。 ev_io_watcher如我们所知,新的fd总是系统可用的最小fd ,所以这个长度可以进行大小限制的,我们用一个连续的数组来存储fd/watch 信息,如下图所示,我们用anfd[fd] 就可以找到对应的fd/watcher 信息,当然可能遇到anfd超出我们的buffer长度情形,这是我 阅读全文
posted @ 2012-08-04 13:45 家春秋东 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 基准测试一,无超时,100和1000的活动客户端基准测试二,空闲超时,100和1000个活动客户端概要:基准测试说明基于libev具有更低的消耗,因此要快于libevent,在api设计问题也在结果中扮演重要的角色,当采用计时器的时候native api比emulation API更有效。尽管这使得libev处于劣势,但它仍然要快于libevent。第一版fapws(wsgi服务器)是基于pyevent的,第二版是用c写的,使用了libevent,当前的第3版也是用c写的,使用了libev。Libev官网:http://software.schmorp.de/pkg/libev.html 阅读全文
posted @ 2012-08-04 13:32 家春秋东 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 1. libcurl2. openssl3. zlib4. c-ares5. libevent6. libevA full-featured and high-performance (see benchmark) event loop that is loosely modelled after libevent, but without its limitations and bugs. It is used in GNU Virtual Private Ethernet, rxvt-unicode, auditd, the Deliantra MORPG Server and Clien 阅读全文
posted @ 2012-08-04 13:23 家春秋东 阅读(232) 评论(0) 推荐(0) 编辑
摘要: http协议学习系列1.基础概念篇1.1介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WW 阅读全文
posted @ 2012-08-03 15:57 家春秋东 阅读(3268) 评论(0) 推荐(4) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2012-08-03 15:56 家春秋东 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 简介许多服务器部署(尤其是 web 服务器部署)面对的最大问题之一是必须能够处理大量连接。无论是通过构建基于云的服务来处理网络通信流,还是把应用程序分布在 IBM Amazon EC 实例上,还是为网站提供高性能组件,都需要能够处理大量并发连接。一个好例子是,web 应用程序最近越来越动态了,尤其是使用 AJAX 技术的应用程序。如果要部署的系统允许数千客户端直接在网页中更新信息,比如提供事件或问题实时监视的系统,那么提供信息的速度就非常重要了。在网格或云 环境中,可能有来自数千客户端的持久连接同时打开着,必须能够处理每个客户端的请求并做出响应。在讨论 libevent 和 libev 如何处 阅读全文
posted @ 2012-08-03 15:54 家春秋东 阅读(221) 评论(0) 推荐(0) 编辑