【发布时间】:2012-08-28 13:45:33
【问题描述】:
我无法将模拟的 Android Activity 连接到在我的计算机上运行的常规 Java 程序。以下是我采取的一些预防措施,应该可以解决它们...
- 我尝试连接到 10.0.2.2,即模拟器所在 localhost 的 IP 地址
- 我生成了一个独立于 UI 线程的新线程来建立连接。 (我没有做花哨的工作线程,我只是创建了一个新线程并说.start())
所以基本上你的系统是由一个普通的 Java 程序组成的,它声明一个 ServerSocket,然后等待 .accept() 方法。我启动了那个程序,希望它坐在那里等待。然后我切换到我的 Activity 类,它有一个按钮的 onClick 方法。该方法调用我的新线程的 .start() 方法。在我的活动的 .run 方法中,我声明了一个新的 Socket 并尝试连接到本地主机。
您还知道我应该注意的其他事项吗?主要问题是什么都没有发生。我在本地主机 java 程序中的 .accept 方法调用之后放置了一个断点,但我从未到达它。
【问题讨论】:
-
这不是真正的代码问题,而是模拟器使用计算机网络的更多方式。模拟器位于内部虚假网络上,无法访问您的计算机实际网络。实际的硬件设备不会有这个问题。
-
谢谢尼克,这似乎是问题所在。我以为我在某个可以与本地主机通信的地方读到,但我想不是。这会使调试稍微困难一些...
标签: java android sockets serversocket