这是我发现“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)
方法是如何工作的,因为它是无效的。
当我使用ServerSocket
,accept()
方法时,它会返回一个Socket进行通信。
但是当我使用start(port)
时,什么都不会返回
答案 0 :(得分:1)
我不确定我是否完全理解您的请求(socks服务器用于代理;它不断监听单个端口并转发请求)但是查看this java file创建Socks代理似乎很合理服务器使用jsocks。
代理服务器运行后,使用this constructor在客户端上创建一个java套接字,您可以在其中指定socks代理服务器的位置。然后,您connect
到远程服务器SocketAddress
和
......应该是它。
你似乎有很多重定向。也许您应该绘制流程图并查看您需要Socks代理服务器的位置以及原因。