代理的jsocks库

时间:2013-01-17 08:03:59

标签: java sockets proxy serversocket socks

这是我发现“jSocks”库的2天。

我试过这样可能会找到我如何使用这个库进行编码。

我必须说文档很差。

希望您为我编码,我只想要一个简单的工作流程

这是我的方案:

1)我想写2个app,一个用于客户端,一个用于服务器。(它是简单的客户端服务器代理)

2)客户端应用程序将侦听localhost(127.0.0.1)上的特定端口以获取传入连接(例如浏览器请求)。

3)客户端应用程序接受来自浏览器的传入连接,并在她和浏览器之间创建一个socks套接字,用于发送和接收数据。

4)客户端应用程序在她和服务器应用程序之间创建一个socks套接字(在Web上托管的服务器应用程序并监听用于传入连接的端口)。

5)服务器应用程序接受传入连接并为Communicate创建一个socks套接字。

6)服务器应用程序接收数据(可能是浏览器请求),处理它并连接到远程网站(在互联网上)。

7)服务器应用程序从网络上传回数据并将其发送到客户端应用程序。

8)客户端应用程序将已回收的数据发送到浏览器。

我使用java标准“Socket”和&创建这个应用程序。对于http请求的“ServerSocket”没有问题,现在我想用socks socket编写这个程序用于所有请求。

我用jsocks尝试了所有东西但没有成功。

我需要工作流程,了解如何使用 jsocks 来创建此应用。

TNX。


@BGR

根据您提到的文件(SOCKS.java),下面的简单行必须有效:

ServerAuthenticator auth = new ServerAuthenticatorNone();

ProxyServer pServer = new ProxyServer(auth);

pServer.setLog(System.out);

pServer.start(50352);

执行此操作时,日志为:启动SOCKS代理:0.0.0.0:50352(如果我将127.0.0.1作为地址传递给start()方法,则日志为“正在启动SOCKS代理:127.0.0.1 :50352但结果是一样的)

但是当我将浏览器请求重定向到此端口时没有任何反应。

我不确定start(port)方法是如何工作的,因为它是无效的。

当我使用ServerSocketaccept()方法时,它会返回一个Socket进行通信。

但是当我使用start(port)时,什么都不会返回

1 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解您的请求(socks服务器用于代理;它不断监听单个端口并转发请求)但是查看this java file创建Socks代理似乎很合理服务器使用jsocks。

代理服务器运行后,使用this constructor在客户端上创建一个java套接字,您可以在其中指定socks代理服务器的位置。然后,您connect到远程服务器SocketAddress

......应该是它。

你似乎有很多重定向。也许您应该绘制流程图并查看您需要Socks代理服务器的位置以及原因。