2

我正在尝试编写一个充当代理服务器的程序。代理服务器基本上侦听给定端口(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();
        }
    }

}

使用该代码,我可以打开像谷歌这样的网页。但是,如果我打开另一个网页,即使我完全收到第一个响应,我也会因对等预期而重置连接。

1.我该如何处理这个问题 我可以使用线程来处理不同的请求吗?有人可以提供参考,我在哪里寻找实现线程的示例代码。

4

0 回答 0