2

我正在尝试使用套接字制作一个简单的 Web 客户端。我向网页发送 GET 请求并希望接收 HTML 文件。我知道我可以使用 接收recv(),但我想使用FILE. 我fdopen用来将套接字包装在FILE. 现在我可以用它fgetc()来阅读响应。然而,fgets()失败了——也许我用错了。有什么方法可以轻松地逐行读取 HTTP 响应?

这有效:

FILE *input = fdopen(mySocket, "r");

while(!feof(input))
{
   printf("%c", fgetc(input));
}

我需要这些方面的东西:

FILE *input = fdopen(mySocket, "r");
char c[2000];
while(fgets(c, sizeof(c), input) != NULL)
{
   printf("%s\n", c);
}

如果有其他方便的方式阅读回复,请指教。

4

1 回答 1

0

我刚刚添加了错误检查,它现在可以工作了。输入确实为 NULL,因为我的请求从未通过。谢谢!

FILE *input= fdopen(mySocket, "r");
if(input== NULL)
{
printf("Error");
    exit 1;
}

char c[2000];
while(fgets(c, sizeof(c), input) != NULL)
{
    printf("%s\n", c);
}
于 2013-04-08T15:47:08.273 回答