クラスについては、cで基本的なプロキシサーバーを作成しています。前に、それはこのように見えるようにをプロキシに入れて、ブラウザにリクエストをフォーマットしてからホストに送信してください。
GET http://www.cs.rpi.edu/index.html HTTP/1.1
Host: www.cs.rpi.edu
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Proxy-Connection: keep-alive
Cookie: __utma=138860844.163543584.1329315062.1329315062.1329315062.1;__utmz=138860844.1329315062.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)
Cache-Control: max-age=0
やフォーマット、プラス同意したUser-Agentヘッダ:教授の例では
(javaのである)、彼は次のようになりますこれは、ブラウザの要求を取りますホストサーバにそれを送信:
GET /index.html HTTP/1.1
Host: www.cs.rpi.edu
私もこれをやったが、今私は2つの問題に実行すると、1つの質問:メッセージは大丈夫サーバー、BECに送信する
A. connect()とwrite()は私に何のエラーも与えませんが、サーバーの応答(おそらく間違ってHTMLを期待していますか?)にread()すると、プログラムはフリーズし、Ctrl + Cまで永遠に座ります。私の人生が原因を見つけることができません:
/* write a message out on the socket connection */
int n = write(sock, clientrequest, strlen(clientrequest));
if (n < strlen(clientrequest))
{
perror("write() failed");
return EXIT_FAILURE;
}
printf("Made it here.\n\n");
char buffer2[1024];
n = read(sock, buffer2, 1024);
if (n < 1)
{
perror("read() failed");
return EXIT_FAILURE;
}
else
{
buffer2[n] = '\0';
printf("Rcvd message from server: \n\n----\n\n%s\n\n----\n\n", buffer2);
}
printf("But not here.\n\n");
私はwww.google.comのようなものに接続しています。 /index.htmlはないので、フォーマットされたリクエストでGETを実行する必要はありますか?
C.なぜ、リクエストはそのまま送信されるのではなく、この方法でフォーマットする必要がありますか?
私が読書を終える前に、2つの改行はありません。私は今それを変更するつもりです。どうもありがとうございます。私はそれも知っていた。私はちょうど完全に忘れてしまった。 – Aerovistae