0

CでHTTPプロキシサーバーを実装しています

.browser(クライアント)からHTTPリクエストヘッダーを取得し、それを解析してurl、ポート番号などを見つけています。次に、次の形式でリモート サーバーにリクエストを送信します:

GET / HTTP1.0\r\nホスト: www.gmail.com:80\r\n\r\n

しかし、実行中、プロキシ サーバーは機能しません。リモートサーバーから日付全体を読み取ります。

プロキシ サーバーからリモート サーバーへのヘッダーまたはサーバーからのデータの読み取りに問題がありますか。

 void handle_connection(......)
{
    ......
   //request send from proxy to remote server
      sprintf(buffer, "%s %s HTTP/1.%d\r\nHost: %s:80\r\n\r\n"
     , http_args[0], requested_url->file, requested_url->proto, requested_url->host);
          //sending the request to remote server connection socket rfd
    n = write(rfd, buffer, sizeof(buffer));
          //reading data from the response of the server
    while ((n = read(rfd, buffer, BUFFSIZE)) > 0) {
        write(connfd, buffer, BUFFSIZE); //sending it to client web brownser
        bzero(buffer, BUFFSIZE);
    }
    close(rfd);
}
4

0 に答える 0