这是我在写一个基本的代理服务器的一部分。此代码读取服务器对HTTP请求的响应,然后将其写回客户端(浏览器)。当我用firefox测试它时,它会加载我的大部分主页,但无法加载图像。然后它会冻结,并且在初始页面之后我无法加载任何其他内容。可能是因为我没有正确关闭连接,以便它可以向我的代理发出另一个请求。我不知道该怎么做。这里接收服务器响应并将其发送到浏览器?
终端输出停止在“完成”。它不打印“重新开始”,但不打印“退出时循环”。所以我无法弄清楚它在哪里停滞不前,或者如何正确地结束连接,以便在加载Google之后,我实际上可以启动Google搜索或加载Gmail或其他任何内容。
while((n = read(sock, buffer2, 1024)) >= 1)
{
printf("Started over: %i :(\n\n", n);
buffer2[n] = '\0';
printf("Rcvd message from server: \n\n----\n\n%s\n\n----\n\n", buffer2);
n = write(newsock, buffer2, strlen(buffer2));
printf("\n\nFinished.\n\n");
}
close(sock);
printf("\n\nExited while loop.\n\n");
这是你发布的另一个问题的副本:http://stackoverflow.com/questions/9728653/handling-a-server-response-and-sending-it-the-browser;也许你应该删除这一个。 – 2012-03-16 01:45:11
是啊,我知道,但我是绝望的答案,我并没有得到one--我知道这是一件坏事。我通常不会这样做。我会删除其他。 – Aerovistae 2012-03-16 02:09:26