我正在尝试连接到我的计算机上的一个简单的Java服务器(以后是一个真正的服务器,但我只是学习如何使用套接字编程。当我尝试连接时,手机上的应用程序抛出一个IOException。但是,在模拟器上,它没有。
我确实:
< uses-permission android:name =“android.permission.INTERNET”/>
包含在清单中。这是我点击打开时执行的代码块:
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");
}
答案 0 :(得分:0)
您确定服务器端使用ServerSocket并使用ServerSocker.accept()方法吗?
答案 1 :(得分:0)
因此弱Wi-Fi信号似乎导致错误。我之后尝试上网(谷歌,美国有线电视新闻网等),但我做不到。所以我现在只需要在仿真器上进行测试,或者在更强的信号中进行测试。感谢
答案 2 :(得分:0)
如果您之前(我正在假设)能够连接到网络,但之后不能连接到网络,那么这不是wifi强度的问题。此外,根据您正在冲浪的地方,可能已将WiFi路由器配置为不允许此类连接。尝试使用同一网络中的其他计算机ping您的服务器IP,看看是否可以ping通。由于服务器在localhost上运行,因此模拟器将工作。