liunx c实现http多线程下载1(总体流程)

本文详细介绍了使用C语言在Linux环境下实现HTTP多线程下载的步骤,包括URL解析、构造HTTP请求、获取文件大小、确定线程分配及文件合并等关键环节。
摘要由CSDN通过智能技术生成

总的来说,http的多线程下载需要如下几个步骤

1.先对目标URL地址进行解析,得到三类信息(1)主机地址,(2)端口(如果没有给出,默认就是80),(3)文件所在主机的具体路径名以及文件名

例如:

char ulr[128] = "http://file2.mydrivers.com/board/wb6audiowinnt4winnt4.exe";  解析后应该得到如下信息

主机地址:file2.mydrivers.com

端口:80(因为没有给出,所以就是默认值)

文件名及其路径:board/wb6audiowinnt4winnt4.exe


2.我们构造满足自己需要的http请求报头,来得到要下载的目标文件的总长度

sprintf(Request, "GET %s HTTP/1.1\r\nAccept: */*\r\nAccept-Language:en-us\r\"nU"
"ser-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT5.0)\r\nHost: "
"%s:%d\r\nConnection: Keep-Alive\r\n\r\n", filepath, hostname, port);

发送后,我们会得到一个响应报文,在接收字段中里面有价值的信息就是length:xxx的内容,也就是对于文件的大小。保存该值。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值