我发现“jSocks”库已经有 2 天了。

我试图找出如何使用这个库进行编码。

我必须说文档很差。

不要 想要你为我编码,我只想要一个 简单的工作流程

这是我的场景:

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

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

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

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

5)服务器应用程序接受传入连接并创建用于通信的socks套接字。

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

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

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

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

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

我需要一个关于如何使用 jsocks 来创建此应用程序的 工作流

tnx。

@BGR

根据您提到的文件(SOCKS.java),如下所示的简单行必须有效:
ServerAuthenticator auth = new ServerAuthenticatorNone();ProxyServer pServer = new ProxyServer(auth);pServer.setLog(System.out);pServer.start(50352);
当我执行这个时,日志是:在:0.0.0.0:50352 上启动 SOCKS 代理(如果我将 127.0.0.1 作为地址传递给 start() 方法,日志是“在:127.0.0.1:50352 上启动 SOCKS 代理,但结果是相同的)

但是当我将浏览器请求重定向到此端口时,什么也没有发生。

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

当我使用 ServerSocketaccept() 方法时,它会返回一个用于通信的套接字。

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

最佳答案

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

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

……应该是这样。

你似乎有很多重定向正在进行。也许您应该绘制一张流程图,看看哪里需要 Socks 代理服务器以及为什么。

关于java - 用于代理的 jsocks 库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14374545/

10-10 17:47