Comment pouvez-vous faire BufferedReader.readLine() accroche pas?

Est-il un moyen de faire BufferedReader.readLine() accroche pas?

Je suis en création d'un serveur qui:

  • Vérifie si le client a livré une entrée.
  • Si pas, il exécute le code des autres et, éventuellement, des boucles de retour à la vérification du client pour l'entrée.

Comment puis-je vérifier si le client a livré une entrée sans courir readLine()? Si je lance readLine(), le thread se bloque jusqu'à ce que l'entrée est livré?

Pourquoi? Le serveur doit avoir une lecture thread par client si vous êtes à l'aide de blocage I/O.
Je ne veux pas créer deux threads pour chaque utilisateur. J'en ai déjà un thread pour chaque utilisateur.
C'est la triste réalité de Java I/O bibliothèque. Vous pouvez soit 1) la rotation des threads séparés pour la lecture 2) Utiliser le NIO bibliothèque 3) Ne pas utiliser readLine() et faire votre propre mise en mémoire tampon et de fin de ligne de gestion de vous-même

OriginalL'auteur Cin316 | 2013-03-19