gpt4 book ai didi

java - 用于代理的 jsocks 库

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:27 24 4
gpt4 key购买 nike

我找到“jSocks”库已经有 2 天了。

我尝试了很多,想知道如何使用这个库编写代码。

我必须说文档很差。

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

这是我的场景:

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

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

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

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

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

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

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

8) 客户端将接收到的数据发送给浏览器。

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

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

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

谢谢。


@BGR

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

ServerAuthenticator auth = new ServerAuthenticatorNone();

ProxyServer pServer = new ProxyServer(auth);

pServer.setLog(System.out);

pServer.start(50352);

当我执行它时,日志是:Starting SOCKS Proxy on:0.0.0.0:50352(如果我将 127.0.0.1 作为地址传递给 start() 方法,日志是“Starting SOCKS Proxy on:127.0.0.1:50352 但结果是一样的)

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

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

当我使用 ServerSocket 时,accept() 方法返回一个用于通信的 Socket。

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

最佳答案

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

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

……应该是这样吧。

您似乎正在进行很多重定向。或许您应该绘制流程图,看看哪里需要 Socks 代理服务器以及原因。

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com