我想构建一个HTTP客户端。到目前为止,我有一些需要一个IP地址并打印http响应,没有问题。但是,当我尝试采取这种反应并将其放入一个字符串程序挂起。套接字编程 - 奇怪的行为
所以此工程:
write(sockfd, sendBuff, strlen(sendBuff));
string s = "";
while((n = read(sockfd, recvBuff, sizeof(recvBuff)-1)) > 0)
{
recvBuff[n] = 0;
if(fputs(recvBuff, stdout) == EOF)
{
printf("\n Error : Fputs error\n");
}
}
而且这并不:
write(sockfd, sendBuff, strlen(sendBuff));
string s = "";
while((n = read(sockfd, recvBuff, sizeof(recvBuff)-1)) > 0)
{
recvBuff[n] = 0;
s.append(recvBuff, strlen(recvBuff));
}
我真的很想把一个完整的HTTP响应转换成一个字符串,因为我有一个分析整个响应的对象。任何帮助,将不胜感激!
为什么不使用'n'而不是在位置'n'处放置一个'0',然后看看'0'是从字符串的开头开始的? – 2013-04-23 01:27:40
问题是什么?除了“挂起”这个词,我没有看到任何其他信息。调试器告诉了什么?要与代码段1进行比较,可以在追加后打印's'吗? – Arun 2013-04-23 01:27:56
该代码很好(尽管'append'不需要将'recvBuff [n]'设置为'0'或调用'strlen',只需使用'n'作为第二个附加参数)。在测试过程中,你的套接字是否掉线为什么不把'fputs'和's.append'放在一起,看看它们是否对应一个特定的运行? – 2013-04-23 01:32:28