【发布时间】:2012-06-28 12:23:03
【问题描述】:
我有使用Socket 与服务器通信的Android 客户端应用程序。
在我的开发机器上,SocketServer(服务器也是用 Java 编写的)正在侦听端口 8666 的 127.0.1.1。我还在 Android 应用的 App manifest 中添加了 Internet 访问权限。
但是当我尝试使用 client = new Socket("127.0.1.1",8666) 实例化 Socket 对象时,它会抛出 IOException 和 connection refused 消息(也尝试使用 localhost 而不是手动提供 IP 地址,但它也不起作用)。虽然我可以从简单的控制台 Java 程序轻松连接到服务器。
这里有什么问题?
更新
我的问题在某些方面与this 有关。我正在尝试访问在运行模拟器的机器上运行的服务器。
注意:我知道不建议在任何 Activity 类中执行网络 IO,我也不这样做,上面的代码只是一个简单易懂的问题。
【问题讨论】:
-
在你的安卓应用中尝试系统的IP地址,或者10.0.2.2而不是127.0.1.1。
-
您的 Android 代码是在模拟器还是实际手机上运行?
-
Wireshark 在这种情况下是您的朋友。记录流量并检查问题所在。仔细检查 IP 地址和端口号。
-
@Neal:我正在模拟器中运行应用程序。
-
我发布了我的答案。快乐编码..!