任何协议的简单转发代理

时间:2017-08-14 23:50:51

标签: java proxy

我想开发一个集中式java服务器,它接受任何类型的网络流量IE FTP,HTTP,HTTPS,RDP等的多个连接。唯一的目标是将其转发到预期目的地并返回响应给请求者。我不知道从哪里开始,因为我发现的唯一信息与转发java servlet请求和转发HTTP的一些信息有关。无论如何只是简单地转发它,还是需要以不同的方式处理每个协议?

public void run () {
    InetSocketAddress address = (InetSocketAddress)this.socket.getRemoteSocketAddress();
    try {
        InputStreamReader isr = new InputStreamReader(this.socket.getInputStream());
        BufferedReader br = new BufferedReader(isr);
        OutputStream os = this.socket.getOutputStream();
        String ipAddress = address.getHostName();
        Log.d("client","A client has connected from: "+ipAddress);

        //TODO forward the client inputstream to the destination

    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try{
            this.socket.close();
        } catch (Exception e) {}
    }
}

1 个答案:

答案 0 :(得分:0)

每个协议都是不同的,除非你想要,并且可以将它们全部强制成一个像HTTP&#CONNECT动词那样的直接套装。您将不得不研究目标客户端能够使用的代理协议。

更有可能的是,您应该在现有实现中使用SOCKS。