1

Java で SOCKS (v4 / v5) プロキシを介して http リクエストを作成しようとしています。ウィキペディアでソックス通信プロトコルについて読んだ後、次のコードをまとめました。

Socket sock = new Socket();
InetSocketAddress remoteProxyAddress = new InetSocketAddress(proxy ip, proxy port);
sock.connect(remoteProxyAddress, connTimeout);

InputStream in = sock.getInputStream();
OutputStream out = sock.getOutputStream();

out.write(0x04);
out.write(0x01);
out.write((endpoint.getPort() >> 8) & 0xff);
out.write((endpoint.getPort() >> 0) & 0xff);
out.write(endpoint.getAddress().getAddress());
out.write(0x0);
out.flush();

そして、ここにプロキシサーバーから読み取る部分があります。問題は、応答が常に「-1」であることです。

Firefox でプロキシを試してみましたが、完璧に動作します。だから...問題は私のアプリにあります。

誰でも私を助けることができますか?ありがとう!

4

1 に答える 1

0

接続しているサーバーが Socks v5 プロトコルしかサポートしていないと思いませんか?

接続要求はすべて問題ありません。サーバーが v4 に対応していれば、コードは機能するはずです。私は非常によく似た実装を完全に成功させています。

また、このSocket()コンストラクターを確認する必要があります。必要に応じて十分な場合があります。JRE 1.6 と JRE 1.7 の両方に存在します。

于 2012-09-29T15:36:56.027 に答える