Socket.setSoTimeout -> BufferedReader -> Default value

WIng2005

Mitglied
Hallo zusammen,

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
 

WIng2005

Mitglied
Oder wird im Falle eines TimeOuts eine Exception geworfen? Ich logge gerade mal etliche Verbindungen und habe zumindest 1x eine IOExcpetion (java.net.SocketTimeoutException) abgefangen.
 

KonradN

Super-Moderator
Mitarbeiter
Du hast Dir die Frage ja selbst beantwortet, aber Du kannst Dir die Dokumentation von setSoTimeout ansehen - da ist es auch beschrieben:
Enable/disable SO_TIMEOUT with the specified timeout, in milliseconds. With this option set to a positive timeout value, a read() call on the InputStream associated with this Socket will block for only this amount of time. If the timeout expires, a java.net.SocketTimeoutException is raised, though the Socket is still valid. A timeout of zero is interpreted as an infinite timeout. The option must be enabled prior to entering the blocking operation to have effect.
Parameters:timeout - the specified timeout, in milliseconds.Throws:SocketException - if there is an error in the underlying protocol, such as a TCP errorIllegalArgumentException - if timeout is negative
 

KonradN

Super-Moderator
Mitarbeiter
Hallo Steffen
ja, mein Post war vermutlich unüberlegt.
Das sollte nicht meine Aussage sein. Deine Postings sind sehr willkommen - sowohl das erste mit der Fragestellung als auch die Ergänzung mit der möglichen Antwort.

Meine Reaktion hätte vermutlich auch besser etwas sein sollen wie: "Damit hast Du den Nagel auf den Kopf getroffen" oder so. Deine Vermutung mit der Exception war halt korrekt.
Aber danke für den Link!!
Sehr gerne. Das war in meinen Augen die beste Bestätigung, dass Deine Vermutung korrekt ist.

Und ganz wichtig: Was sollte keine "RTFM" (Read The Fu... Manual) sein. Es ist gut, in die Dokumentation hinein zu schauen, aber gerade am Anfang ist es schwer, dort immer das zu finden, was man braucht.

Das einfach nur einmal als mögliche Klarstellung (und sorry, falls ich in deinen Satz zu viel hinein interpretiert haben sollte. Aber der Punkt ist mir nun einmal sehr wichtig! Ich wirke halt manchmal etwas schroff, aber das ist keine Absicht!)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Einfaches Beispiel mit Netty Socket.IO Allgemeine Java-Themen 6
A ByteArray über Socket Allgemeine Java-Themen 3
Master3000 Java Port reset (Socket) Allgemeine Java-Themen 6
J socket closed - wie behandeln. Allgemeine Java-Themen 2
E Socket Java Socket Antwortet nicht. Allgemeine Java-Themen 2
J Could not convert socket to TLS - gestern liefs noch Allgemeine Java-Themen 2
Meeresgott Input/Output Java Socket Verbindung Allgemeine Java-Themen 1
D Socket Verbindung mit TLSv1 Allgemeine Java-Themen 1
C Input/Output Zip Files über Socket senden und empfangen Allgemeine Java-Themen 6
O Socket-Unterschiede zwischen Windows und Ubuntu Allgemeine Java-Themen 2
J Bytes aus Socket lesen Allgemeine Java-Themen 9
D Socket Java Socket Verbindung Allgemeine Java-Themen 14
T Serialisiertes Objekt über Socket nachladen Allgemeine Java-Themen 8
R Socket verbindung mit Timeout Allgemeine Java-Themen 2
N InputStreamReader-> DataInputStream-> Socket.getInputS Allgemeine Java-Themen 25
T Socket Server Anwendung - Empfang eines Byte-Arrays Allgemeine Java-Themen 7
G Java Socket langsam unter Linux Allgemeine Java-Themen 21
P Typ Object in socket umwandeln Allgemeine Java-Themen 4
T OO zum drucken/convertieren ohne Socket Allgemeine Java-Themen 8
F Socket - Server verbindung Allgemeine Java-Themen 12
T ObjectOutputStream => Socket versenden Allgemeine Java-Themen 2
A Socket-Server ohne Terminal laufen lassen [Windows] Allgemeine Java-Themen 5
kodela Unterschiedliches Verhalten von BufferedReader Allgemeine Java-Themen 3
D BufferedReader bricht nach 1248 Iterationen ab Allgemeine Java-Themen 14
C BufferedReader/BufferedWriter schreibt nicht alle Bytes Allgemeine Java-Themen 2
C TCP Server und BufferedReader Leerstring im Stream? Allgemeine Java-Themen 5
A BufferedReader ohne System.in Allgemeine Java-Themen 9
J BufferedReader Datei einlesen Allgemeine Java-Themen 8
Messoras Der BufferedReader mag mich nicht Allgemeine Java-Themen 47
C Threading mit BufferedReader/InputStream & sockets Allgemeine Java-Themen 0
J BufferedReader OutOfMemory umgehen? Allgemeine Java-Themen 10
B Input/Output BufferedReader Allgemeine Java-Themen 3
O BufferedReader von ganz unten anfangen zu lesen Allgemeine Java-Themen 7
S BufferedReader/PrintWriter an einer HTML Allgemeine Java-Themen 6
M BufferedReader: Vom Logfile zur Datenbank Allgemeine Java-Themen 6
S Null Pointer Exception bei BufferedReader Allgemeine Java-Themen 4
K BufferedReader.readLine erkennt Zeilenende nicht Allgemeine Java-Themen 11
D 'InputStreamReader' & 'BufferedReader' führen zu "cannot find symbol"-Fehler Allgemeine Java-Themen 3
D Scanner leer aber bufferedReader nicht?! Allgemeine Java-Themen 2
A bufferedReader readline, encoding Allgemeine Java-Themen 5
V wie bufferedreader.readline() unterbrechen? Allgemeine Java-Themen 4
Developer_X Java BufferedReader mit URL Allgemeine Java-Themen 5
D BufferedREader#readLine Allgemeine Java-Themen 20
Semox Fehler - Zuweisung aus BufferedReader an Variable Allgemeine Java-Themen 3
S Exception beim BufferedReader Allgemeine Java-Themen 3
J BufferedReader br.readLine(); Allgemeine Java-Themen 22
G getFilePointer in BufferedReader? Allgemeine Java-Themen 2
D (BufferedReader) inLine() "verschluckt" zeilen ? Allgemeine Java-Themen 2
M BufferedReader.read(char[] cbuf) liefert falsche Werte? Allgemeine Java-Themen 4
W Frage zu BufferedReader Allgemeine Java-Themen 2
conan2 BufferedReader.readLine() von anderem Thread aus beenden Allgemeine Java-Themen 4
K Wie kann ich einen BufferedReader beschleunigen? Allgemeine Java-Themen 4
N readLine() von BufferedReader hält das Programm fest/auf! Allgemeine Java-Themen 10
B while mit BufferedReader beenden Allgemeine Java-Themen 5
F Zu große Werte beim byteweisen Lesen mit BufferedReader.read Allgemeine Java-Themen 5
S BufferedReader problem Allgemeine Java-Themen 11
D BufferedReader in image umwandeln Allgemeine Java-Themen 3
M BufferedReader input - hängt sich auf Allgemeine Java-Themen 4
C Probleme mit URL und BufferedReader Allgemeine Java-Themen 6
C BufferedReader oder DataInputStream Allgemeine Java-Themen 4
M Store a String in a BufferedReader Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben