我正在尝试使用套接字制作一个简单的 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);
}
如果还有其他方便的阅读回复方式,请指教。
最佳答案
我刚刚添加了错误检查,现在可以使用了。输入确实是 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);
}
关于c - 使用带套接字的 C 中的 I/O 从服务器接收响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15882550/