Gibt es eine Möglichkeit BufferedReader.readLine()
nicht hängen zu machen?Wie können Sie BufferedReader.readLine() hängen nicht?
Ich erstelle einen Server, auf:
- Prüft, ob der Kunde eine Eingabe geliefert hat.
- Wenn nicht, führt er einen anderen Code und schließlich eine Schleife zurück den Client für die Eingabe zu überprüfen.
Wie kann ich überprüfen, ob der Client jede Eingabe ohne Lauf readLine()
geliefert hat? Wenn ich readLine()
ausführen, wird der Thread hängen, bis die Eingabe geliefert wird?
Warum? Wenn Sie blockierende E/A verwenden, sollte der Server über einen separaten Lese-Thread pro Client verfügen. – EJP
Ich möchte nicht für jeden Benutzer zwei Threads erstellen müssen. Ich habe bereits einen Thread für jeden Benutzer. – Cin316
Dies ist die traurige Realität der Java I/O-Bibliothek. Sie können entweder 1) Spin separate Threads zum Lesen 2) Verwenden Sie die NIO-Bibliothek 3) Verwenden Sie nicht readLine() und machen Sie Ihre eigenen Pufferung und Zeilenende-Management selbst – creechy