これは私が書いている基本的なプロキシサーバーの一部です。このコードは、HTTPリクエストに対するサーバレスポンスを読み取り、それをクライアント(ブラウザ)に返します。私がfirefoxでテストすると、私のホームページのほとんどが読み込まれますが、イメージを読み込むことはできません。その後、フリーズし、最初のページの後には何もロードできません。おそらく、私は接続を適切に閉じずに、私のプロキシに別の要求をすることができないでしょう。私はそれをどうやって行うのか分からない。サーバーレスポンスを受信してブラウザに送信しますか?
ここでの端末出力は「終了」で停止します。 "Started with"は印刷されませんが、 "Exited while loop"は印刷されません。私はどこに詰まっているのか、または接続を正しく終了する方法を理解できないので、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。おそらくあなたはこれを削除する必要があります。 –
ええ、私は知っていますが、私は答えが切望されていました。私はそれを得ていませんでした - それは悪いことです。私は通常それをやりません。私はもう一方を削除します。 – Aerovistae