4

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

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

我必须说文档很差。

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

这是我的场景:

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

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

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

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

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

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);

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

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

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

当我使用时ServerSocketaccept()它会返回一个用于通信的 Socket。

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

4

1 回答 1

2

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

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

……应该是这样的。

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

于 2013-01-17T14:23:19.713 回答