0

Android エミュレーターが PC で実行されているソケット サーバーに接続するのに、同じ回線で送り返されるメッセージを受信しないのはなぜですか?

Android アプリは192.168.1.33ポート2012で私の C# ソケット サーバーに正常に接続し、メッセージは Android からサーバーに問題なく送信できます。同じソケット接続を使用して、ソケットからアンドロイドにメッセージを送信しますが、アンドロイド側ではメッセージを受信しません。

他の場所でアドバイスされているように、リッスン/接続 IP アドレス (10.0.2.2、10.0.2.15) のさまざまな組み合わせを試しましたが、何らかの理由で 127.0.0.1 に接続しても、C# ソケット サーバーへの接続がまったく許可されていないようです

次を使用して、Androidでポート転送を試みました。

    Telnet o localhost 5554
    redir add tcp:2012:2012

私のPCのポート2012がエミュレーター自体のポート2012にマップされるようにしますが、これでは問題は解決しません。

使用する正しいIPアドレスとポートに関する情報(ポート転送のものと一緒に)は混乱しています...誰もこれを機能させる方法を理解していますか?

注: C# クライアント アプリとサーバー アプリの間でメッセージが問題なく送受信されます。クライアントとして動作するアンドロイドでのみ正しく動作しません

4

1 に答える 1

1

解決策は、接続やポートとは関係ありませんでした。問題は、Android デバイスに送り返すデータにありました。

ソケットが情報をデバイスにフラッシュするには、改行文字が必要です。

    socket.Send(message + "\n");
于 2012-12-18T11:50:48.657 に答える