如何使用代理连接服务器?

时间:2015-03-22 10:09:10

标签: java sockets proxy

我在JAVA中制作了一个服务器 - 客户端聊天程序。客户端和服务器都在同一台机器上运行。现在我想在它们之间使用代理服务器。例如;客户端通过代理连接到服务器,而不是客户端的实际IP地址。我不知道是否有任何图书馆可以执行此任务。而且我不知道我应该使用哪种协议!!

//Client Class
Socket clientSocket = new Socket(InetAddress.getByName(ServerIP, 6789));

//Server Class
ServerSocket serverSocket = new ServerSocket(6789);
Socket socket = serverSocket.accept();

/********CONNECTION ESTABLISHED*******************************/

现在,我想在同一台计算机上将连接请求作为代理发送给服务器而不是客户端IP地址。

1 个答案:

答案 0 :(得分:0)

TCP套接字是低级别的,足以在自己的级别上没有任何代理机制。更高级别的协议(HTTP,FTP等)可以很容易地代理,但TCP不能代理。

但是,您可以查看SOCKS5实现。至少有一个实现可以包装未修改的TCP客户端应用程序,并通过SOCKS5代理将其路由到未修改的TCP服务器应用程序。我怀疑这是你正在寻找的解决方案。

TLDR:使用现成的JDK API无法代理TCP连接。