Android和c#之间的进程间通信

本文关键字:进程间通信 之间 Android | 更新日期: 2023-09-27 17:49:36

尝试在Android和c#之间执行套接字通信,我似乎被卡住了。

这基本上是我目前为止的代码。

Android:

public void onClick(View v) {
    try {
        InetAddress serverAddr = InetAddress.getByName("localhost");
        Socket mySocket = new Socket(serverAddr, 666);
    } catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
c#:

TcpListener listener = new TcpListener(System.Net.IPAddress.Parse("127.0.0.1"), 666);
listener.Start();
using (Socket socket = listener.AcceptSocket())
{
    using (Stream stream = new NetworkStream(socket))
    {
    }
}

当在我的Android应用程序中击中Socket mySocket = new Socket(serverAddr, 666);行时,我得到以下错误。

" java.net.ConnectException:localhost/127.0.0.1:666 -连接拒绝"

谁能指导我,我做错了什么?

PS:我正在通过模拟器测试这一点,所以想知道是否有可能有某种限制我的能力与其他进程在机器上运行通信?

Android和c#之间的进程间通信

在模拟机器内部,地址127.0.0.1不是主机的环回接口,而是模拟机器自己的环回接口。

根据模拟器文档,您可以通过特殊地址10.0.2.2访问主机的环回接口。

异常详细说明您试图从Android连接到127.0.0.1,这意味着您的Android设备。由于服务器套接字在您的Windows计算机上,因此无法连接。