【问题标题】:Interprocess communication between Android and C#Android和C#之间的进程间通信
【发布时间】:2011-08-03 03:03:42
【问题描述】:

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

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

安卓:

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:我正在通过模拟器进行测试,所以想知道我与机器上运行的其他进程的通信能力是否存在某种限制?

【问题讨论】:

    标签: c# java android sockets


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      根据emulator documentation可以通过特殊地址10.0.2.2访问主机的loopback接口。

      【讨论】:

      • 你是一把枪。发现。我的想法显然被打破了......谢谢!
      • 是的,为 Android 问题加分!我知道在我没有编程的平台文档中囤积书签有时会派上用场:P
      • 大声笑,是的,我做同样的事情。经历对平台的热情,研究它,然后其他事情会转移你的注意力!
      猜你喜欢
      • 2011-01-05
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多