我正在尝试使用 BufferedReader 或 Scanner 从服务器读取输出,但它卡在 read() 或 readLine() 对象上。它永远不会从那条线上返回。但是,它可以在 Windows 上完美运行。读取输出的代码如下所示:
while ((serverResponce = this.in.readLine()) != null) {
if (serverResponce.compareTo(message) == 0) {
break;
}
}
或使用 Scanner 类:
Scanner scanner = new Scanner(socket.getInputStream());
while (scanner.hasNextLine())
{
serverResponce = scanner.nextLine();
if (serverResponce.compareTo(message) == 0) {
break;
}
}
我还尝试了 BufferedReader 中的 ready() 或 Scanner 中的 hasNextLine() ,但没有任何用处。
我对服务器的输出没有任何控制权,所以我不知道他们使用的是哪种格式。它在 Mac 上使用 telnet 工作,但不在 java 应用程序内。什么样的原因使它在 Windows 上运行但在 Mac OS X 上卡住了?