其他分享
首页 > 其他分享> > http下载 asio改

http下载 asio改

作者:互联网

#include <io.h> 
using namespace std;
void getDirFiles(string dir, vector<string>& files) {
    //文件句柄  
    long   hFile = 0;
    //文件信息  
    struct _finddata_t fileinfo;

    string p;

    if ((hFile = _findfirst(p.assign(dir).append("/*").c_str(), &fileinfo)) != -1) {

        do {
            //如果是目录,迭代之
            //如果不是,加入列表
            if ((fileinfo.attrib & _A_SUBDIR)) {
                //if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
                //    getFiles(p.assign(path).append("/").append(fileinfo.name), files);
            }
            else {
                files.push_back(p.assign(dir).append("/").append(fileinfo.name));
            }
        } while (_findnext(hFile, &fileinfo) == 0);

        _findclose(hFile);
    }
}

reply reply::dirlist_reply()
{
    vector<string> vecFiles;
    getDirFiles("./", vecFiles);
    string strA;

    for (auto item:vecFiles) {
        strA.append(item);
        strA.append("  ");
    }

    reply rep;
    rep.status = ok;
    rep.content = strA;
    rep.headers.resize(2);
    rep.headers[0].name = "Content-Length";
    rep.headers[0].value = std::to_string(rep.content.size());
    rep.headers[1].name = "Content-Type";
    rep.headers[1].value = "text/html";
    return rep;
}

} // namespace server
} // namespace http

 

使用asio 时预处理器

ASIO_STANDALONE
_CRT_SECURE_NO_WARNINGS
_WINSOCK_DEPRECATED_NO_WARNINGS

目录

F:\Cpan\vs2019repos\TestAsio\asio-1.12.2\include

直接源码拷贝进去,不需要其他操作。

 

剩下就是大文件的分批发送了--

 还有那个断点传的还需要。

标签:asio,http,name,rep,headers,下载,fileinfo,append,hFile
来源: https://www.cnblogs.com/cnchengv/p/16292927.html