2

私は C で UNIX ソケットを作成し、それを ndk でコンパイルし、adb を介して SD カードから /data/local にプッシュしました。そのファイルのパーミッションを 777 に変更し、 ./ で実行しました。これで、/dev/socket に自作のソケットが表示されるようになりました。

今、私は次のJAVAコードを介してこのソケットを接続しようとしています:

            mSocket = new LocalSocket();

            mSockAddr = new LocalSocketAddress( "rilproxy"  );
            mSocket.connect( mSockAddr );

次のエラーが表示されます:

java.io.IOException: 接続が拒否されました

私はこの問題を回避しようと懸命に努力しましたが、うまくいきませんでした。この点でどんな助けでも大歓迎です。

4

1 に答える 1

0

Androidマニフェストファイルでインターネットの許可を与えましたか?そうでない場合、最初のソケット接続自体が失敗します。(マニフェストでネットワーク許可を宣言する適切にコーディングされたAndroidアプリケーションは、デバイスにファイアウォールがないため、非特権ポートでの接続を受け入れることができます。)

次の行をAndroidManifest.xmlに追加します

エミュレーターでテストする場合は、localhostの代わりに10.0.2.2を使用します(10.0.2.2は、エミュレーターでアプリを実行する場合に使用する「魔法の」IPアドレスです)。

于 2013-01-08T13:15:55.880 に答える