4

「jSocks」ライブラリを見つけて2日が経ちました。

このライブラリを使ってコーディングする方法を見つけようとしました。

ドキュメントは非常に貧弱であると言わざるを得ません。

私はあなたにコードを書いてほしくありません。単純なワークフローが欲しいだけです。

ここに私のシナリオがあります:

1)クライアント用とサーバー用の2つのアプリを作成したい。(単純なクライアント サーバー プロキシです)

2) クライアント アプリは、着信接続 (ブラウザー リクエストなど) のために localhost (127.0.0.1) の特定のポートをリッスンします。

3) クライアント アプリはブラウザからの着信接続を受け入れ、データを送受信するために彼女とブラウザの間にソックス ソケットを作成します。

4) クライアント アプリは、彼女とサーバー アプリ (サーバー アプリは Web 上でホストされ、着信接続用のポートをリッスンします) の間にソックス ソケットを作成します。

5) サーバー アプリは着信接続を受け入れ、通信用のソックス ソケットを作成します。

6)サーバーアプリはデータを受信し(ブラウザリクエストの場合があります)、それを処理し、リモートWebサイト(インターネット上)に接続します。

7) サーバー アプリは Web からデータを受け取り、それをクライアント アプリに送信します。

8) クライアント アプリは受信したデータをブラウザに送信します。

私は問題なくhttpリクエスト用のJava標準の「Socket」と「ServerSocket」を使用してこのアプリを作成します。今、すべてのリクエストに対してソックスソケットを使用してこのプログラムを作成したいと思います。

私は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 (start()メソッドのアドレスとして 127.0.0.1 を渡すと、ログは「Starting SOCKS Proxy on:127.0.0.1:50352 ですが、結果は同じです。 )

しかし、ブラウザのリクエストをこのポートにリダイレクトしても何も起こりません。

実際には、メソッドが無効であるため、メソッドがどのように機能するかわかりませんstart(port)

を使用するServerSocketと、accept()メソッドは通信用のソケットを返します。

しかし、私が使用するstart(port)と何も返されません

4

1 に答える 1

2

あなたの要求を完全に理解しているかどうかはわかりません (socks サーバーはプロキシを目的としています。常に単一のポートでリッスンし、要求を転送します)

プロキシ サーバーを実行したら、このコンストラクターを使用してクライアントに Java ソケットを作成します。このコンストラクターでは、socks プロキシ サーバーの場所を指定します。次にconnect、リモートサーバーSocketAddressに移動し、

……そのはずです。

多くのリダイレクトが行われているようです。フロー図を作成して、Socks プロキシ サーバーが必要な場所とその理由を確認する必要があるかもしれません。

于 2013-01-17T14:23:19.713 に答える