所以我在我的android应用程序中有这个非常奇怪的错误。我试图连接到TCP服务器,并交易一些消息,没有什么复杂的,真的。我已经设法超越了一开始就遇到的所有问题,但现在我陷入了一个我希望有人知道如何解决的错误。BufferedReader不从tcp服务器读取
我连接到服务器并成功获取输入和输出流,但是当从服务器读取响应时,程序冻结。我研究过这一点,我知道这是因为服务器没有消息。但我也知道服务器响应,因为我已经为iOS创建了相同的应用程序,并且它收到了一切正常。它可以是一些机器人问题?或者只是在系统中的一些设置?
下面是代码片段,告诉你这不是什么大问题。我没有更多的东西在代码中,但如果你需要看看它的其余部分,请问。
在此先感谢!
try {
InetAddress serverAddr = InetAddress.getByName(serverIP);
tcpSocket = new Socket(serverAddr, serverPort);
Log.e("socket",
"created socket with " + serverIP
+ Integer.toString(serverPort));
out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(tcpSocket.getOutputStream())),
true);
Log.e("socket", "output stream created alright");
in = new BufferedReader(new InputStreamReader(
tcpSocket.getInputStream()));
Log.e("socket", "input stream created alright");
out.println("handheld#" + clientID + "#connection request");
fromServer = in.read();
while(fromServer != -1) {
fromServer = in.read(); //updated, still no good
}
connected = true;
Log.e("socket", "connect thread will finnish");
} catch (UnknownHostException e) {
Log.e("socket", "error finding host", e);
} catch (IOException e) {
Log.e("socket", "error creating socket's streams", e);
}
它在第一个in.read()中冻结; – pavlag
当然是的。它应该是.. while(fromServer!= -1)fromServer = in.read(); – JenEriC
是的,这是真的,谢谢。但尝试过,现在这是纠正,它仍然不动... – pavlag