Hallo zusammen,
läßt sich auf ein TimeOut beim Einlesen einer SocketVerbindung über einen BufferedReader irgendwie reagieren bzw. ein Default-Wert setzen?
Der Teil: client_echo = br.readLine(); würde ja nach meinem Verständnis durch meinEchoSocket.setSoTimeout(1000) nach 1s abgebrochen (korrigiert mich). Aber läßt sich in diesem Fall auch ein Default-Wert für client_echo vergeben, oder reich ein client_echo="TimeOut" VOR dem einlesen zu setzen und im Falle eines TimOuts verbleibt dieser Wert?
VG
Steffen
läßt sich auf ein TimeOut beim Einlesen einer SocketVerbindung über einen BufferedReader irgendwie reagieren bzw. ein Default-Wert setzen?
Java:
try {
Socket meinEchoSocket= new Socket();
meinEchoSocket.setSoTimeout(1000);
meinEchoSocket.connect(new InetSocketAddress(this.ip, port), 2000);
OutputStream socketoutstr = meinEchoSocket.getOutputStream();
OutputStreamWriter osr = new OutputStreamWriter( socketoutstr );
BufferedWriter bw = new BufferedWriter( osr );
InputStream socketinstr = meinEchoSocket.getInputStream();
InputStreamReader isr = new InputStreamReader( socketinstr );
BufferedReader br = new BufferedReader( isr );
String client_echo;
bw.write(cmd);
bw.newLine();
bw.flush();
client_echo = br.readLine();
bw.close();
br.close();
meinEchoSocket.close();
return client_echo;
}
catch (UnknownHostException uhe) {
Main.mainFrame.appendTextAreaErrorMessages("->SocketClient uhe: " +this.ip);
Main.mainFrame.appendTextAreaErrorMessages("->" + cmd);
Main.mainFrame.appendTextAreaErrorMessages("-->" + uhe);
return"Fehler";
}
catch (IOException ioe) {
Main.mainFrame.appendTextAreaErrorMessages(getNow());
Main.mainFrame.appendTextAreaErrorMessages("->SocketClient ioe: " +this.ip);
Main.mainFrame.appendTextAreaErrorMessages("->" + cmd);
Main.mainFrame.appendTextAreaErrorMessages("-->" + ioe);
return "Fehler";
}
catch (Exception e) {
Main.mainFrame.appendTextAreaErrorMessages("->SocketClient e: " +this.ip);
Main.mainFrame.appendTextAreaErrorMessages("->" + cmd);
Main.mainFrame.appendTextAreaErrorMessages("-->" + e);
return "Fehler";
}
Der Teil: client_echo = br.readLine(); würde ja nach meinem Verständnis durch meinEchoSocket.setSoTimeout(1000) nach 1s abgebrochen (korrigiert mich). Aber läßt sich in diesem Fall auch ein Default-Wert für client_echo vergeben, oder reich ein client_echo="TimeOut" VOR dem einlesen zu setzen und im Falle eines TimOuts verbleibt dieser Wert?
VG
Steffen