Hallo mal wieder :lol:
Ich hatte bisher bei der Connection zum Server immer einen Input-Stream verwendet, und den über eine Methode bei Bedarf ausgelesen. Nun wollte ich das alles in einen BufferedReader packen um es effizienter zu machen.
Leider aber liest er nichts ein und gibt immer direkt ein "false" bei der ready()-Methode zurück.
Alte Codierung:
Dieser Code hat soweit auch funktioniert.
Hier der neue Ansatz:
Hier allerdings ist der Rückgabewert der br.ready() direkt false.
Weiss einer wieso ??
Im Endeffekt geht es darum, einen langen Text einzulesen, und dies sollte ja mit dem BufferedReader einiges effezienter sein als direkt mit dem InputStream !
Ich hatte bisher bei der Connection zum Server immer einen Input-Stream verwendet, und den über eine Methode bei Bedarf ausgelesen. Nun wollte ich das alles in einen BufferedReader packen um es effizienter zu machen.
Leider aber liest er nichts ein und gibt immer direkt ein "false" bei der ready()-Methode zurück.
Alte Codierung:
Code:
try {
soc = new Socket(server, port);
in = soc.getInputStream();
} catch(Exception e) {}
...
...
// Aufruf der receive()-Methode
...
...
public String receive() {
int c = 0;
text = "";
try {
while ( c != 10 ) { // Eine Zeile einlesen
c = in.read();
text = text + ((char)c);
}
} catch(Exception e) {}
return text;
}
Dieser Code hat soweit auch funktioniert.
Hier der neue Ansatz:
Code:
try {
soc = new Socket(server, port);
br = new BufferedReader(new InputStreamReader(soc.getInputStream()));
} catch(Exception e) {}
...
...
// Aufruf der receive()-Methode
...
...
public String receive() {
int c = 0;
text = "";
try {
while ( br.ready() ) {
c = br.read();
text = text + ((char)c);
}
} catch(Exception e) {}
return text;
}
Hier allerdings ist der Rückgabewert der br.ready() direkt false.
Weiss einer wieso ??
Im Endeffekt geht es darum, einen langen Text einzulesen, und dies sollte ja mit dem BufferedReader einiges effezienter sein als direkt mit dem InputStream !