Java Android套接字-客户端IOException

Java Android套接字-客户端IOException,java,android,sockets,Java,Android,Sockets,我正在尝试连接到我计算机上的一个简单Java服务器(将来是一个真正的服务器,但我只是先学习如何使用套接字编程。当我尝试连接时,手机上的应用程序会抛出IOException。但是,在emulator上,它不会 我有: 包含在清单中。这是我点击open时执行的代码块: try { responseField.setText("Opening socket..."); Socket socket = new Socket(getIP(),Integer.parseInt(getPort())

我正在尝试连接到我计算机上的一个简单Java服务器(将来是一个真正的服务器,但我只是先学习如何使用套接字编程。当我尝试连接时,手机上的应用程序会抛出IOException。但是,在emulator上,它不会

我有:

包含在清单中。这是我点击open时执行的代码块:

try {
  responseField.setText("Opening socket...");
  Socket socket = new Socket(getIP(),Integer.parseInt(getPort()));
  responseField.setText("Socket opened. Initializing out...");
  out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
  responseField.setText("Done. Initializing in...");
  in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  responseField.setText("Done.");
} catch (NumberFormatException e1) {
  responseField.setText("NumberFormatException");
} catch (UnknownHostException e1) {
  responseField.setText("UnknownHostException");
} catch (IOException e1) {
  responseField.setText("IOException");
}

您是否确保服务器端使用ServerSocket并使用ServerSocker.accept()方法?

因此,似乎是微弱的Wi-Fi信号导致了错误。我尝试上网(谷歌、CNN等)之后,我不能。所以我现在只能在模拟器上进行测试,或者在更强的信号中进行测试。如果您以前能够连接到web,谢谢(我假设)但不是之后,那么wifi强度就没有问题了。同样,根据您正在冲浪的位置,wifi路由器可能已配置为不允许此类连接。尝试使用同一网络中的其他计算机ping您的服务器IP,并查看是否可以ping。由于服务器在本地主机上运行,Emulator将正常工作

getIP()和getPort()返回的是什么?您是否确保wifi/3G正在运行?它在哪里失败,错误是什么?尝试创建套接字时失败。“打开套接字…”是最后打印的东西。问题似乎出在EVO的弱Wi-Fi信号上。一个和两个条显然不足以在网上冲浪,因此人们可以认为这是问题的根源。是的,模拟器连接、发送和接收都很完美,所以似乎弱Wi-Fi信号导致了错误。我试图在网上冲浪(谷歌、美国有线电视新闻网等)之后,我不能。所以我现在只能在模拟器上测试,或者在更强的信号中测试。谢谢。我还向用户推荐非常好的错误处理/通知,以便您的应用程序的购买者明确知道它失败的原因。谢谢Kevin,一个更具再反驳性的应用程序,当然会被开发出来,但现在我知道了原因。