免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: duanjigang
打印 上一主题 下一主题

源码阅读第一期:axel和wget [复制链接]

论坛徽章:
0
221 [报告]
发表于 2011-10-17 15:47 |只看该作者
回复 220# 向前走直到永远

恩,我是直接进入代码阅读。后面才开始明白整体构造,不太懂的。我有比较宏观的总结,可以参考,以免走偏。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
222 [报告]
发表于 2011-10-17 15:52 |只看该作者

论坛徽章:
0
223 [报告]
发表于 2011-10-17 20:51 |只看该作者
呵呵,踊跃参加喔,不光要读别人的分析,尝试着自己分析更支持啊:wink:

论坛徽章:
0
224 [报告]
发表于 2011-10-17 22:05 |只看该作者
回复 221# wangzhen11aaa

   Axel的tcp.c中:
    if( local_if && *local_if )                                                                                        //
        {
                local.sin_family = AF_INET;
                local.sin_port = 0;
                local.sin_addr.s_addr = inet_addr( local_if );
                if( bind( fd, (struct sockaddr *) &local, sizeof( struct sockaddr_in ) ) == -1 )
                {
                        close( fd );
                        return( -1 );
                }
        }

if( local_if && *local_if )这句是什么意思啊

论坛徽章:
0
225 [报告]
发表于 2011-10-17 23:55 |只看该作者
回复 224# 向前走直到永远
这个是网络接口的判断。

论坛徽章:
0
226 [报告]
发表于 2011-10-18 09:58 |只看该作者
回复  wangzhen11aaa

   Axel的tcp.c中:
    if( local_if && *local_if )                                                                                        //
        {
                loca ...
向前走直到永远 发表于 2011-10-17 22:05



    如果这个字符串指针不空,并且存储的内容不空的话。
就把它作为IP地址,connect端的socket实施IP地址绑定

论坛徽章:
0
227 [报告]
发表于 2011-10-19 13:40 |只看该作者
本帖最后由 wangzhen11aaa 于 2011-10-19 14:16 编辑

回复 226# 贺兰云天
不能猜啊. . . . . .我把它当成if  那个ifconfig 了。。。
那个代码我没读,我承认。

谢谢

论坛徽章:
1
双子座
日期:2013-11-06 17:18:01
228 [报告]
发表于 2011-10-19 16:17 |只看该作者
本帖最后由 seufy88 于 2011-10-19 16:26 编辑

回复 223# duanjigang


    想问一下在axel中。针对ftp部分,会多次用到ftp_wait函数,用来寻找返回状态码
但是如果返回的第一行是“整数  字符串”形式的,ftp_wait()会获取到“整数”,存入于conn->status,并将之返回,此时conn->fd的套接字缓存中应该还是剩下的内容,没有被ftp_wait函数读走

下次向FTP服务器发送一个命令后,FTP服务器再次返回新的响应,append到缓存中。那么就存在上一次剩下的没被读走的和新的一起组成的新缓存,请问ftp_wait每次调用都能保证将coon->fd中所有数据都读走吗?

论坛徽章:
0
229 [报告]
发表于 2011-10-19 17:55 |只看该作者
回复 212# 雨过白鹭洲


    这个命令太厉害了,不过为什么不支持IPv6 ?
    提示: curl: (7) Failed to connect to 2001:1890:1112:1::20: Network is unreachable
    是不是本机需要更改什么配置?

论坛徽章:
0
230 [报告]
发表于 2011-10-19 22:51 |只看该作者
版主能给解释一下吗?
在Axel.h
typedef struct
{
        void *next;
        char text[MAX_STRING];
} message_t;


typedef message_t url_t;
typedef message_t if_t;


为什么要再把message_t 定义为 url_t和 if_t
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP