Meine Frage kurz formuliert:
Wie überprüfe ich ob im Inputstream etwas Neues drinnen ist, damit ich dann .read() im gegenteiligen Fall überspringen kann?
Lang:
Also ich seh im Moment keinen Ausweg: In zb. einem Chat muss ich doch pro Frame einmal nachsehen was im Inputstream geliefert wurde, und das dann auslesen. Nur wird natürlich nicht 1mal pro Frame etwas geliefert, also hängt alles - was völlig inakzeptabel ist.
Jetzt hab ich die Methode availabe() gefunden die mir die Anzahl der Bytes liefern soll, die ich bis zum nächsten Blockieren ungefährdet lesen kann. Aber in der Doku steht:
"The available method for class InputStream always returns 0.
This method should be overridden by subclasses. "
Subklassen wie BufferedReader oder InputStreamReader haben aber keine available() Methode. Sagt jetzt bloß nicht dass ich mir selbst einen Reader schreiben muss!
Achja, außerdem dreht mein PC irre auf wenn das Programm gestartet wird, ich hab aber keine rechenintensiven Tasks...das ist auch vom Blockieren nehm ich an oder?
Wie überprüfe ich ob im Inputstream etwas Neues drinnen ist, damit ich dann .read() im gegenteiligen Fall überspringen kann?
Lang:
Also ich seh im Moment keinen Ausweg: In zb. einem Chat muss ich doch pro Frame einmal nachsehen was im Inputstream geliefert wurde, und das dann auslesen. Nur wird natürlich nicht 1mal pro Frame etwas geliefert, also hängt alles - was völlig inakzeptabel ist.
Jetzt hab ich die Methode availabe() gefunden die mir die Anzahl der Bytes liefern soll, die ich bis zum nächsten Blockieren ungefährdet lesen kann. Aber in der Doku steht:
"The available method for class InputStream always returns 0.
This method should be overridden by subclasses. "
Subklassen wie BufferedReader oder InputStreamReader haben aber keine available() Methode. Sagt jetzt bloß nicht dass ich mir selbst einen Reader schreiben muss!
Achja, außerdem dreht mein PC irre auf wenn das Programm gestartet wird, ich hab aber keine rechenintensiven Tasks...das ist auch vom Blockieren nehm ich an oder?