(wifi)c#
経由で PC 上のアプリケーションと通信するために、Android アプリケーションを実装する必要があります。TCP
私はこれに従いました -
https://workspaces.codeproject.com/dhl_hh/android-how-to-communicate-with-net-application-vi
eneter
ライブラリを使用したソリューションを実装するためのチュートリアル。
C#
アプリケーションに使用される IPは
IDuplexInputChannel anInputChannel
= aMessaging.CreateDuplexInputChannel("tcp://127.0.0.1:8060/");
Android
アプリに使用されるIPは
IDuplexOutputChannel anOutputChannel
= aMessaging.createDuplexOutputChannel("tcp://10.0.2.2:8060/");
しかし、アンドロイドアプリを実機に転送しwifi
てC#アプリ経由でデータを送信しようとすると、チュートリアルにあるように携帯端末から転送された文字列が表示されません。
私が試した修正は、
- C#IPをそのまま(127.0.0.1)に保ち、Android IPをC#アプリが実行されているPCのIP(192.168.137.1)に変更しました。
- 動作する修正: C# IP を PC の実際の IP (192.168.137.1) に変更し、Android アプリの IP アドレスを Android デバイスの実際の IP (192.168.137.1) に変更しました。
- 参考:ポート番号は変更していません
これらの修正を行っても問題は解決せず、どうすればよいかわかりません。私はtcp
プログラミング分野の初心者であるため、数日間多くのソリューションを試していました。
この問題を解決する方法について、専門家のアドバイスをいただければ幸いです。
あなたは大歓迎です:)
前もって感謝します。
PS
- PC の実際の IP (C# プログラムを使用) -
192.168.137.1
- Android デバイスの実際の IP (Android アプリを使用) -
192.168.137.14
Logcat 出力
05-29 12:49:17.988: E/EneterMessaging(1792): ~ 1 eneter.messaging.endpoints.typedmessages.DuplexTypedMessageSender.sendRequestMessage DuplexTypedMessageSender<MyResponse, MyRequest> atached to the duplex output channel '' failed to send the request message because it is not attached to any duplex output channel.
05-29 12:49:17.988: E/EneterMessaging(1792): ~ 1 net.client.AndroidNetCommunicationClientActivity.onSendRequest Sending the message failed.
05-29 12:49:17.988: E/EneterMessaging(1792): Exception:
05-29 12:49:17.988: E/EneterMessaging(1792): java.lang.IllegalStateException: DuplexTypedMessageSender<MyResponse, MyRequest> atached to the duplex output channel '' failed to send the request message because it is not attached to any duplex output channel.
05-29 12:49:17.988: E/EneterMessaging(1792): eneter.messaging.endpoints.typedmessages.DuplexTypedMessageSender.sendRequestMessage(DuplexTypedMessageSender.java:67)
05-29 12:49:17.988: E/EneterMessaging(1792): net.client.AndroidNetCommunicationClientActivity.onSendRequest(AndroidNetCommunicationClientActivity.java:120)
05-29 12:49:17.988: E/EneterMessaging(1792): net.client.AndroidNetCommunicationClientActivity.access$1(AndroidNetCommunicationClientActivity.java:111)
05-29 12:49:17.988: E/EneterMessaging(1792): net.client.AndroidNetCommunicationClientActivity$2.onClick(AndroidNetCommunicationClientActivity.java:160)
05-29 12:49:17.988: E/EneterMessaging(1792): android.view.View.performClick(View.java:4102)
05-29 12:49:17.988: E/EneterMessaging(1792): android.view.View$PerformClick.run(View.java:17084)
05-29 12:49:17.988: E/EneterMessaging(1792): android.os.Handler.handleCallback(Handler.java:615)
05-29 12:49:17.988: E/EneterMessaging(1792): android.os.Handler.dispatchMessage(Handler.java:92)
05-29 12:49:17.988: E/EneterMessaging(1792): android.os.Looper.loop(Looper.java:155)
05-29 12:49:17.988: E/EneterMessaging(1792): android.app.ActivityThread.main(ActivityThread.java:5520)
05-29 12:49:17.988: E/EneterMessaging(1792): java.lang.reflect.Method.invokeNative(Native Method)
05-29 12:49:17.988: E/EneterMessaging(1792): java.lang.reflect.Method.invoke(Method.java:511)
05-29 12:49:17.988: E/EneterMessaging(1792): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)
05-29 12:49:17.988: E/EneterMessaging(1792): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:796)
05-29 12:49:17.988: E/EneterMessaging(1792): dalvik.system.NativeStart.main(Native Method)
05-29 12:49:17.988: E/EneterMessaging(1792): ==========