這是我在寫一個基本的代理服務器的一部分。此代碼讀取服務器對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