0

以下のスニペット コードを使用して、Android クライアント アプリ (Android OS 1.5 および 1.6) で SOCKS サーバーを介してサーバーに接続しようとしました。

    Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(Constants.SOCKS_PROXY_HOST, Constants.SOCKS_PROXY_PORT));
    socket = new Socket(proxy);
    InetSocketAddress dest = new InetSocketAddress(targetHost,targetPort);
    socket.connect(dest);

ただし、最後の行で例外が発生しました。

W/System.err(  507): java.net.SocketException: SOCKS connection failed: java.net.SocketException: Bad socket
W/System.err(  507):    at org.apache.harmony.luni.net.PlainSocketImpl.socksConnect(PlainSocketImpl.java:389)
W/System.err(  507):    at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:224)
W/System.err(  507):    at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:521)
W/System.err(  507):    at java.net.Socket.connect(Socket.java:1019)
W/System.err(  507):    at java.net.Socket.connect(Socket.java:960)

誰かが私がどこで間違ったのか考えているかもしれません? 前もって感謝します。

4

1 に答える 1

0

しばらく時間がかかりましたが、最終的に解決策を見つけました。両方の携帯電話の Android OS バージョンが同じ場合でも、複数の Android デバイスでの java.net SOCKS 実装に少し問題があるようです (異なるビルドの複数の携帯電話でテスト済み)。とにかく、プロジェクトで別の代替ソックス ライブラリを使用する必要があります: JSocks (http://jsocks.sourceforge.net/)

これまでのところ、私がテストしたいくつかのデバイスで魅力的に機能します。

于 2010-10-15T01:07:04.807 に答える