最近我要用atl写一个支持多线程断点续传的http下载组件,现在找到atl里面的CAtlHttpClient类和CAtlNavigateData类,但看了MSDN,感觉不能满足要求,CAtlHttpClient一次性调用Navigate要等到完成才返回;想请问一下在atl里其满足我的要求吗?不想有WinINet函数,因为那组函数有bug。

解决方案 »

  1.   

    把CAtlHttpClient调用过程,写在线程里不行么?
      

  2.   

    typedef CAtlHttpClientT<ZEvtSyncSocket> CAtlHttpClient;
    尝试改变模板参数ZEvtSyncSocket,调查有否ZEvtAsyncSocket或类似的,没有的话,只能自己写了。或看看libcurl库:http://curl.haxx.se/libcurl/
      

  3.   

    我想从底层socket开始封装一个http协议,然后用这个来进行下载,但担心这样性能不太好,因为自己封装很有可能存在很多问题。
    CAtlHttpClient类里怎么没有看到可以设置http头信息的函数,只有一个设置附加头信息的。
      

  4.   

    我觉得,从底层的socket开始封装一个http的class比较快一些,将来改也方便.