我遇到了最随机的问题。简单地说,我希望迭代一个while循环,直到满足某个条件,当它不符合时,显然应该运行循环后的代码。由于某种原因,while循环后面的代码没有运行......这是我的代码:
while (true)
{
Socket ClientSocketConnection = serverSocket.accept();
System.err.println("We have established a connection with a client!");
System.out.println(" ");
ServerInput = new BufferedReader(new InputStreamReader(ClientSocketConnection.getInputStream()));
ServerOutput = new DataOutputStream(ClientSocketConnection.getOutputStream());
while((StringInput = ServerInput.read()) != -1)
{
//Things get done here
}
//methodBeingUsed is a string here
switch (methodBeingUsed){
case "GET":
GET();
break;
case "POST":
POST(sBuffer.toString());
break;
}
System.err.println("The Connection will now Terminated!");
ServerOutput.close();
ServerInput.close();
ClientSocketConnection.close();
}
}
基本上switch语句由于某种原因没有被运行?当我调试代码时,我从ServerInput
变量到达最后一个-1,代码就停止了。停止并且不继续while(true)
循环中的所有其他内容。真的不确定为什么会这样......
答案 0 :(得分:3)
这显然是阻塞方法:ServerInput.read()
,它意味着它等待它实际读取的东西。如果它没有读取任何东西,它只是在等待。您可能未正确连接到现有连接。