2012-04-13 6 views
0

私はJavaでポート3000でリッスンするlocalhost HTTPプロキシを作成しました。プロキシにHTTPリクエストをチャネライズすることができます(ブラウザはランダムな高値ポート〜50000を使用して送信します)。 HTTP応答を取得します。問題は、これらのレスポンスをブラウザに送って表示する方法がわからないことです。HTTPレスポンスをブラウザに送り返す

別の方法では、ブラウザが待機するポートを取得して、そのポートでデータを送信するためのソケットを設定する方法を教えてください。私が受け取ったのと同じ高値のポートにデータを送る必要があるのですか?助けてください。

ありがとうございます。

+0

いくつかのコードを表示できますか? – beny23

+1

あなたはいけません。リクエストを読み込んだソケットでレスポンスを送信します。 –

+0

〜50000(ブラウザで使用されるランダムなポート)または3000のプロキシを設定する場所に送信する必要がありますか? –

答えて

2

ブラウザは、着信HTTPトラフィックがあるポートでリッスンしません。ブラウザはクライアントであり、接続を開始し、何も受信しない/受信しません。あなたのプロキシでは、入ってくるブラウザのリクエストを待ち受け、自分のソケットを保持し、行きたい場所に要求を転送し、応答を待ってから、最後にレスポンスを待っているブラウザに返すべきです。開いている。

+0

あなたは、私がリクエストを受けた場所から〜50000までの同じ高価値ポートにデータを送り返さなければならないということを意味しますか?プロキシが設定されている場所は3000ではありませんか? –

+1

リクエストを受け取ったソケットと同じソケットにデータを送り返す必要があります。新しいソケットを作成しないでください!ソケットは、双方向の通信パイプです。 –

+0

上記でNicolasが述べたように、ソケットは双方向通信のためのものなので、ブラウザからデータを取得するだけでなく、データを送信することもできます。実際、ブラウザは同じ接続からのデータを返すことを期待しています! – vagelis

関連する問題