Hallo alle miteinander
ich bin noch ein blutiger anfänger wenn es darum geht mit Java zu Programmieren also bitte nicht so viel wissen vorrausetzten.
am besten poste ich erstmal den quelltext und die ausgabe:
Ausgabe:
Durch ausprobieren konnte ich das Problem soweit einkreisen das, beim auslesen in.readLine() nie null zurückgegeben wird.
wenn ich am anfang sock.setSoTimeout(300); weglasse dann bleibt er die ganze Zeit in der schleife (unendlich schleife?!)
ich hab im internet überall diese while schleife gefunden und frage mich warum sie bei mir nicht klappt. Es klappt wenn ich die exception abfange aber das fände ich nicht so schön.
ich bin dankbar für jeden tipp da ich ja wie gesagt noch nicht viel erfahrung mit java und vorallem noch weniger mit sockets habe.
Falls einer das testen möchte hier der ts2 server zum runterladen
viel dank schon mal im vorraus für eure hilfe
ich bin noch ein blutiger anfänger wenn es darum geht mit Java zu Programmieren also bitte nicht so viel wissen vorrausetzten.
am besten poste ich erstmal den quelltext und die ausgabe:
Java:
public static void main(String[] args) {
try {
Socket sock = new Socket();
sock.connect(new InetSocketAddress("localhost", 51234));
BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
PrintWriter out = new PrintWriter(sock.getOutputStream());
//den befehl sl senden
out.println("sl");
out.flush();
//das ergebnis auslesen
StringBuffer output = new StringBuffer();
String s = "";
while ((s = in.readLine()) != null) {
output.append(s);
}
System.out.println(output);
out.close();
in.close();
sock.close();
} catch (Exception e) {
e.printStackTrace();
}
}
Ausgabe:
Code:
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at Ts2SocketTest.main(Ts2SocketTest.java:50)
Durch ausprobieren konnte ich das Problem soweit einkreisen das, beim auslesen in.readLine() nie null zurückgegeben wird.
wenn ich am anfang sock.setSoTimeout(300); weglasse dann bleibt er die ganze Zeit in der schleife (unendlich schleife?!)
ich hab im internet überall diese while schleife gefunden und frage mich warum sie bei mir nicht klappt. Es klappt wenn ich die exception abfange aber das fände ich nicht so schön.
ich bin dankbar für jeden tipp da ich ja wie gesagt noch nicht viel erfahrung mit java und vorallem noch weniger mit sockets habe.
Falls einer das testen möchte hier der ts2 server zum runterladen
viel dank schon mal im vorraus für eure hilfe
Zuletzt bearbeitet: