Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;使用套接字从URL下载文件_C++_File_Download - Fatal编程技术网

C++ C++;使用套接字从URL下载文件

C++ C++;使用套接字从URL下载文件,c++,file,download,C++,File,Download,我正在尝试从URL下载一个文件并将其保存在某个路径中。 我不想卷曲,所以我想通过插座。 我没有任何代码,如果你能帮我谢谢 C++标准库没有与网络套接字交互的API。因此,没有下载文件的标准方法。要使用操作系统提供的API,第一步是决定程序将在哪个操作系统上运行 下一步是找出要使用的应用层协议。这通常可以由URL的方案部分确定。例如,如果url以http://开头,则程序需要使用http协议。在C++中没有标准的HTTP协议实现。您可以在这里找到规范:尽管如果您需要支持HTTPS之类的东西,您可能

我正在尝试从URL下载一个文件并将其保存在某个路径中。 我不想卷曲,所以我想通过插座。
我没有任何代码,如果你能帮我谢谢

C++标准库没有与网络套接字交互的API。因此,没有下载文件的标准方法。要使用操作系统提供的API,第一步是决定程序将在哪个操作系统上运行


下一步是找出要使用的应用层协议。这通常可以由URL的方案部分确定。例如,如果url以http://开头,则程序需要使用http协议。在C++中没有标准的HTTP协议实现。您可以在这里找到规范:尽管如果您需要支持HTTPS之类的东西,您可能还需要阅读一些“过时者”和“更新者”规范。也就是说(通常情况下),使用免费库可以节省大量时间,我建议您这样做。

我发现这段代码非常好用

#include <urlmon.h>

#pragma comment(lib, "urlmon.lib")
int main(int argc, char *argv[]) {
// download the putty executable to putty.exe in the working directory, error checking omitted
URLDownloadToFile(NULL, "http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe", "putty.exe", 0, NULL);
return 0;
}```
#包括
#pragma注释(lib,“urlmon.lib”)
int main(int argc,char*argv[]){
//将putty可执行文件下载到工作目录中的putty.exe,忽略错误检查
URLDownloadToFile(空,“http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe,“putty.exe”,0,NULL);
返回0;
}```

请注意,
URLDownloadToFile()
是出了名的错误,并且缺乏良好的错误报告。考虑使用WiNeNET,请参阅,特别是节上。它的代码比只调用1个函数多一点,但更可靠,并提供更好的错误处理。