bonjour,
ya t'il une methode pour ne pas bloquer la lecture sur inputstream
genre timeout,
bonjour,
ya t'il une methode pour ne pas bloquer la lecture sur inputstream
genre timeout,
Il n'est pas possible de définir directement un timeout. Une solution est de lancer la lecture dans un thread et de lancer un deuxième thread qui va appeler la méthode join() sur le premier thread. Cette méthode retourne soit lorsque le thread est terminé soit lorsque le timeout passé en paramètre est écoulé. Il suffit alors de faire un close() sur le flux.
On peut aussi utiliser un Timer au lieu d'utiliser la méthode join() car cette méthode effectue une attente active, ce qui est généralement considéré comme un anti-pattern.
je pense que trouvé une idée, corriger moi si je me trompe !
pour ne pas ce bloquer au moment du lecture :
avant de faire un :
je boucle sur un petit moment pour pour qu'il ya une écriture sur inputStream, en testant à chaque fois s'il ya des données à lire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part inputStream.read();
si cette methode me rend un entier suprieur à 0 ==> données à lire;
Code : Sélectionner tout - Visualiser dans une fenêtre à part inputStream.available();
sinon au bout d'un moment, si tjr == 0, alors j'effectue pas de lecture
merci
J'ai cru comprendre que la méthode available() n'étaitpas du tout fiable.
Partager