public static void waitUntil(String prompt, InputStream instr) {
while (true) {
try {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (instr.available() >= 5) {
byte[] buff = new byte[1024];
int ret_read = 0;
ret_read = instr.read(buff);
if (ret_read > 0) {
if ((new String(buff, 0, ret_read)).contains(prompt)
&& flag) {
break;
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Если удалите это thread.sleep(1000)
или даже я уменьшу до менее 1000, он не работает должным образом.Прочитайте входной поток сокета Java без thread.sleep() в приведенном ниже коде?
Вопрос: Как читать входной поток сокета java без thread.sleep()
до того, как все входящие байты будут получены?