プロキシ サーバーとして機能するプログラムを作成しようとしています。プロキシ サーバーは、基本的に特定のポート (7575) をリッスンし、要求をサーバーに送信します。今のところ、レスポンスのキャッシュは実装していません。
コードは次のようになります
ServerSocket socket = new ServerSocket(7575);
Socket clientSocket = socket.accept();
clientRequestHandler(clientSocket);
上記のコードを次のように変更しました。 //別のメソッド内から同じ clientRequestHandler メソッドを呼び出す。
Socket clientSocket = socket.accept();
Thread serverThread = new Thread(new ConnectionHandler(client));
serverThread.start();
class ConnectionHandler implements Runnable {
Socket clientSocket = null;
ConnectionHandler(Socket client){
this.clientSocket = client;
}
@Override
public void run () {
try {
PrxyServer.clientRequestHandler(clientSocket);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
コードを使用して、Google のような Web ページを開くことができます。ただし、最初の応答を完全に受信したにもかかわらず、別の Web ページを開くと、ピアの期待によって接続がリセットされます。
1. この問題を処理するにはどうすればよいですか? スレッドを使用してさまざまな要求を処理できますか? スレッドを実装するサンプルコードを探す場所を誰かが参照できますか。