2011-07-07 49 views
0

我试图连接到我的计算机上的一个简单的Java服务器(在未来一个真正的服务器,但我只是学习如何先用套接字编程,当我尝试连接时,在手机上的应用程序抛出IOException然而,在模拟器上,它不Android套接字 - 客户端IOException

我有:。

<使用许可权的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

什么是getIP()和getPort()返回? – Trevor

+0

你确定你有wifi/3G运行吗? – f20k

+0

它失败的地方,错误是什么意思? – KevinDTimm

回答

0

所以看起来Wi-Fi信号很弱导致错误。之后我尝试着上网(Google,CNN等),但我不能。所以我现在只需要在模拟器上进行测试,或者使用更强的信号。谢谢

0

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

+0

是的,仿真器连接,发送和接收完美 – rsromano

+0

因此,看起来Wi-Fi信号很弱,导致错误。之后我尝试着上网(Google,CNN等),但我不能。所以我现在只需要在模拟器上进行测试,或者使用更强的信号。谢谢。 – rsromano

+0

我也会向用户推荐非常好的错误处理/通知,以便您的应用程序的购买者知道它为什么会失败 - 显式地。 – KevinDTimm

0

如果你能够连接到网络之前(我假设),但不是之后,那么它的WiFi强度没有问题。同样取决于你正在冲浪的地方,wifi路由器可能已经被配置为不允许这样的连接。尝试使用同一网络中的其他计算机ping您的服务器IP,并查看是否可以ping通。由于服务器在本地主机上运行,​​因此模拟器将工作。