当前位置:编程学习 > C#/ASP.NET >>

vc http client 多线程

用http client 多线程实现下载文件,不用MFC,具体线程用哪些函数?以及他们的库文件? --------------------编程问答-------------------- UP --------------------编程问答-------------------- 别UP,大哥,教我撒```` --------------------编程问答-------------------- 请教一下,怎么能做到在多线程的时候每个线程都去下载分配给自己的那快数据.
例如:
每个线程每次下载一个文件块,但是并不是有多少个文件块就启动多少个线程。启动线程的数量取以下三者的最小值:用户输入的线程数目,程序分块数目,程序定义的最大线程数,其中后者为:
typedef struct iblock

{

    int index;

    int blockSize;

    struct iblock* next;

} stBlock, *IBLOCK ;

这个结构体我如何在,自己线程运行的时候用到它,是一开始就要把文件做成一个链表吗?如果是,应该怎么做?



           pthread_mutex_lock(&m_mutex);

           if (blkfirst == NULL)

           {

                  pthread_mutex_unlock(&m_mutex);

                  break;

           }

           current = blkfirst;

           blkfirst = blkfirst->next;

           index = current->index;

           blockSize = current->blockSize;

           free(current);

          pthread_mutex_unlock(&m_mutex);


上面的代码是什么意思,链表该怎么建立?
--------------------编程问答-------------------- 这段代码不全,不过好像是遍历链表,然后释放所有节点,那个break应该是结束这个遍历循环用的;
每次循环都会得到该链表的一个节点信息index,blockSize;然后就释放节点;但是获取到index,blockSize想干什么用不是很清楚,因为给出的代码有限!
          
           pthread_mutex_lock(&m_mutex);//临界资源,加锁

           if (blkfirst == NULL)//如果链表头指针为空,遍历了所有节点后,跳出循环

           {

                  pthread_mutex_unlock(&m_mutex);

                  break;

           }

           current = blkfirst;//指向第一个节点

           blkfirst = blkfirst->next;//将blkfirst 指向下一个节点

           index = current->index;//获取当前节点的index

           blockSize = current->blockSize;//获取当前节点记录的blockSize

           free(current);//释放当前节点

          pthread_mutex_unlock(&m_mutex);//解锁
--------------------编程问答--------------------  点量Http、FTP多线程断点续传下载组件(下载DLL)的开发目的是让用户可以无需关心Http/FTP协议的具体细节,只需要几十行甚至几行代码,便可以实现一个功能完善的Http/FTP下载软件。点量Http/FTP下载组件(DLL)支持多线程、断点续传、显示详细下载过程、自动查找镜像网址、支持代理传输等完善的功能。

     点量Http、FTP下载内核源码使用高效的c++代码编写,提供标准的动态链接库(DLL),可供C/C++、Delphi、C#、Java、VB等语言和各常用开发环境调用,让您完全像调用系统API一样的调用。

     点量Http/FTP组件的功能简介:

标准Http和FTP下载支持:完全标准的Http和FTP协议支持,内部通过网址自动区分是Http还是FTP下载。 
极速下载(2.0以后版本):超越国内绝大多数下载软件的易做图。新版内核在2M ADSL的环境下下载,有些文件的速度可以达到1400K字节/秒以上,超过了带宽的极限。易做图可以用极速形容。 
多线程传输:可以将文件自动分块,并采用多线程下载。并可自由设置线程数目。 
断点续传:点量Http/FTP有优秀的断点续传支持,每次启动自动从上次下载的位置开始,不需要重复下载。 
提供详细的下载详情接口(2.0以后版本):可以看到整个下载过程的步骤,比如开启了多少线程、服务器的应答过程、错误信息等。 
支持多种高级设置:设置线程数目、磁盘缓存大小、搜索镜像服务器的详细参数设置、下载文件完成后同步文件为服务器上的文件时间、下载过程中可以自定义文件临时后缀、未完成的文件设为隐藏属性。 
支持磁盘缓存:点量Http/FTP下载DLL支持设置磁盘缓存,减少对磁盘的读写,并提升易做图。 
支持设置Refer:点量Http/FTP下载组件支持设置下载时的Refer,以便可以绕过一些防盗链的网站,直接下载内容。 
限速功能:点量Http/FTP下载组件可方便的设置下载限速。 
多种磁盘分配方式:点量Http/FTP下载组件支持预分配和边下载边分配两种磁盘方式,满足多种下载需求。 
自动搜索镜像加速:点量Http/FTP内置了镜像搜索功能,在下载文件的同时,会自动搜索哪些其它网站还有这个文件,自动从其它网址下载加速。 
可提供源码:支付一定的费用,便可以获得全部的点量Http/FTP下载组件的源代码,免除您的所有后顾之忧。 
良好的服务:作为点量软件旗下的软件,可享受到点量软件的优秀服务,我们的服务让您如同拥有一个称心的专业员工。

点量Http/FTP 下载组件可以适用于任何Http和FTP下载的领域,让您可以在1天内完成一个完整的Http下载软件的全部功能。比如,您可以用于产品的升级、文件的下载和传输等。 
点量Http/FTP内核可以为您带来:


1、大大节省您的开发成本:了解Http和FTP的协议,再去编码、测试,即使对于一个非常有经验的开发人员来说,也需要较长期的时间,此间耗费的人力资源成本和管理成本可谓不少。而使用点量Http/FTP,您就不需要从制造轮子开始制造您的汽车,将注意力集中于车的设计而不是基础设备的建设。何况我们的产品性能是如此优越!

2、强有力的技术支持:作者长期从事下载技术的研发,所提供的技术支持相当于您雇佣了一位具有丰富经验,无需从头学习的开发人员,可以在您的系统建设过程中为您提供整体系统架设的意见。

如果您是个人作为非商业目的使用,您可以自由、免费的使用点量Http/FTP下载组件内核库和演示程序,也期待收到您反馈的意见和建议;如果您是商业使用,那么您需要联系作者申请产品的商业授权。

-----------------------------------------------------------------------------------------------------------------------
点量软件官方地址:http://www.dolit.cn          http://hi.baidu.com/dlbtsoft   

点量Http/FTP内核SDK下载地址:http://hi.baidu.com/dlbtsoft/blog/item/09fa66d15a258d89a1ec9c6f.html。
补充:.NET技术 ,  VC.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,