我正在尝试制作一个小程序来下载exe并使用winsock2.h将其保存在本地,它可以正常工作,就像它下载文件并保存它一样。但最终文件几乎是它下载的实际文件的 6 倍。我似乎无法弄清楚为什么。我尝试下载并保存在本地的文件是 ccleaner403.exe,例如它大约 4mb,但最终结果是 36mb。显然那里仍然有 HTTP 标头,但那些不是 32mb 的。该文件有点长,所以我只是剪掉了“文件写入部分”。如果您需要其余的,请询问。
#define BUFSIZE 4096
// Receive the data
memset(buf, 0, sizeof(buf));
// Open file for writing
fp = fopen("stuff.exe", "wb");
header = 0;
test = 0;
while ((tmpres = recv(sock, buf, BUFSIZ, 0)) > 0)
{
fwrite(buf, 1, sizeof(buf), fp);
memset(buf, 0, tmpres);
}