尝试在 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 - Connection refused"
任何人都可以指导我,我做错了什么?
PS:我正在通过模拟器对此进行测试,因此想知道我与计算机上运行的其他进程进行通信的能力是否可能存在某种限制?
最佳答案
在仿真机内部,地址 127.0.0.1 不是主机的环回接口(interface),而是仿真机自己的环回接口(interface)。
根据emulator documentation您可以通过特殊地址10.0.2.2访问主机的环回接口(interface)。
关于c# - Android与C#之间的进程间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5622787/