阅读量:295
一旦连接建立,我们就可以向服务器发送一个HTTP请求来获取文件,在这个例子中,我们将请求一个名为"example.txt"的文件。
char *http_request = "GET /example.txt HTTP/1.1\r
Host: localhost\r
Connection: close\r
\r
";
write(sockfd, http_request, strlen(http_request));
我们需要从服务器接收文件内容并将其保存到本地文件中,这可以通过调用read()函数来完成。
FILE *file = fopen("downloaded_file.txt", "wb");
if (!file) {
perror("Error opening file");
close(sockfd);
exit(EXIT_FAILURE);
}
char buffer[1024];
int bytes_read;
while ((bytes_read = read(sockfd, buffer, sizeof(buffer))) > 0) {
fwrite(buffer, 1, bytes_read, file);
}
fclose(file);
close(sockfd);
printf("File downloaded successfully!
");
return 0;
}
相关问题与解答
问题1: 如何更改要下载的文件名?

答:要更改要下载的文件名,只需修改http_request字符串中的文件名部分即可,如果你想下载"myfile.txt",则将http_request更改为:
char *http_request = "GET /myfile.txt HTTP/1.1\r Host: localhost\r Connection: close\r \r ";
问题2: 如果服务器返回错误信息怎么办?
答:如果服务器返回错误信息,通常会在响应头中包含一个状态码(如404表示未找到文件),你可以通过检查响应头来确定是否发生了错误,并根据需要采取相应的措施(如打印错误消息或重试请求)。