Hallo Leute,
wie im Thema schon gesagt, arbeite ich mit SSH (Ganymed SSH2).
Dabei hole ich mir die stdout und stdin von der Host und arbeite damit, soweit so gut.
Mein Problem tritt recht häufig auf: Scheinbar ist die Verbindung nicht immer voll da usw. jedenfalls kann ich im Normalfall mit BufferedReader.ready() herausfinden, ob ein Stream bereit ist, ein Zeichen auszugeben (so, dass man ohne Blockieren lesen kann). Daher lasse ich meinen Reader so arbeiten:
Diese Schleife wird aber schon vorher abgebrochen, da scheinbar einige Responses von der Host etwas brauchen und das selbe zur Folge hat...
Hat jemand eine Idee, wie ich sicher herausfinde, ob der Stream jetzt wirklich auf eine Usereingabe wartet bzw. gibt es einen Algorithmus der das evtl sogar schon kann?
Danke schonmal für eure Ideen. Ich freue mich immer auf hilfreiche Ratschläge.
LG Stefan
wie im Thema schon gesagt, arbeite ich mit SSH (Ganymed SSH2).
Dabei hole ich mir die stdout und stdin von der Host und arbeite damit, soweit so gut.
Mein Problem tritt recht häufig auf: Scheinbar ist die Verbindung nicht immer voll da usw. jedenfalls kann ich im Normalfall mit BufferedReader.ready() herausfinden, ob ein Stream bereit ist, ein Zeichen auszugeben (so, dass man ohne Blockieren lesen kann). Daher lasse ich meinen Reader so arbeiten:
Java:
while(buf.ready()){
reset = false;
tried = false;
c = (char)buf.read();
s+=c;
}
Diese Schleife wird aber schon vorher abgebrochen, da scheinbar einige Responses von der Host etwas brauchen und das selbe zur Folge hat...
Hat jemand eine Idee, wie ich sicher herausfinde, ob der Stream jetzt wirklich auf eine Usereingabe wartet bzw. gibt es einen Algorithmus der das evtl sogar schon kann?
Danke schonmal für eure Ideen. Ich freue mich immer auf hilfreiche Ratschläge.
LG Stefan