gpt4 book ai didi

无法使用 C 中的套接字下载多个文件

转载 作者:行者123 更新时间:2023-11-30 19:18:37 27 4
gpt4 key购买 nike

当我尝试通过 HTTP 协议(protocol)使用流套接字下载一组文件时,它仅从我尝试下载的第一个文件获取数据。
假设像下面这样的循环...

char* file = (char*) malloc(enough_space);
char page[] = {"www.foobar.com"};
for(int n=0 ; n<10 ; n++)
{
sprintf(file, "file%i.html", n);
fopen(file, "wb");
sprintf(request, "GET %s HTTP/1.1\nHost: %s\n\n", file, page);
write( socket, request, strlen(request) );
read_file(output_file);
fclose(output_file);
}

首先建立连接的位置。
这段代码会给我 file1.html,包括来自服务器的 header 。但只有第一个文件,这让我很困惑。为了获得全部文件,我必须做什么?
先谢谢了。

最佳答案

HTTP 的设计目的是通过 TCP 连接只能下载单个文件。要通过一个 TCP 连接下载多个文件,您可以使用 HTTP 管道技术。您可以在这里阅读更多信息:HTTP pipelining request text example

或者您可以使用众多库之一来处理此问题,以及许多其他 HTTP 警告:libcurl、libsoup...

关于无法使用 C 中的套接字下载多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26596933/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com