Endlosschleife, Sockets

StupidAttack

Bekanntes Mitglied
Folgende Methode verlässt niemals die while-Schleife. Den Content empfängt sie problemlos, nur halt wird der String line niemals null. Hat jemand ne andere Idee, wie man ein Kriterium für ein Schleifenende findet?

Java:
    public String crawl() {
        try {
            InetAddress addr = InetAddress.getByName(this.host);
            Socket socket = new Socket(addr, this.PORT);

            /* Build Request */
            BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8"));
            wr.write("GET "+this.path+" HTTP/1.1\r\n");
            wr.write("Host: "+this.host+"r\n");
            wr.write("User-Agent: "+this.user_agent+"\r\n");
            wr.write("\r\n");

            wr.flush();

            // Get response
            BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String line = rd.readLine();
            while (line != null) {
                               
                this.html_content += line;
                line = rd.readLine();
            }
            
            
            wr.close();
            rd.close();


        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return html_content;
    }
 
S

SlaterB

Gast
das Lesen endet nicht weil die andere Seite nicht geschlossen wird, das ist zunächst normal, kein Problem,

man könnte in die Kommunikation ein Protokoll einbauen, wenn ENDE gesendet wurde, dann ist Ende, auch wenn die Gegenseite zu faul ist, das selbst zu machen,
wenn man der Gegenseite nicht sagen kann was es senden soll und auch sonst keine Ahnugng zur Interpretation der Daten hat, dann kann man einfach nur warten,
wie lange man Leerlauf ohne neue Daten akzeptiert, muss man selber wissen, danach selber die Verbindung beenden,

dazu entweder einen Timeout setzen, dann dürfte der read()-Aufruf mit einer Exception unterbrochen werden, wenn ich mich nicht irre,
oder notfalls einen eigenen zweiten Thread nebenher laufen lassen der die Verbindung killt
 

Murray

Top Contributor
In diesem speziellen Fall scheint es ja um HTTP zu gehen - da gibt es den Content-Length-Header, den man auswerten könnte, sobald er auftaucht. Bis dahin (oder wenn so ein Header nicht geschickt wird), kann man nur mit einem Timeout arbeiten, wie Slater schon schrieb.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
noah1407 endlosschleife Java Basics - Anfänger-Themen 7
G Endlosschleife keine Rückgabe Java Basics - Anfänger-Themen 36
sserio Endlosschleife ja nein? Java Basics - Anfänger-Themen 13
javapingu Endlosschleife bei User Input mit try Scanner Java Basics - Anfänger-Themen 7
B Endlosschleife Thread sauber beenden Java Basics - Anfänger-Themen 19
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
O Endlosschleife abbrechen Java Basics - Anfänger-Themen 10
S Endlosschleife beim Ausgeben einer LinkedList Java Basics - Anfänger-Themen 2
S Interpreter-Fehler Endlosschleife zur Laufzeit aber warum? Java Basics - Anfänger-Themen 15
T Erste Schritte Endlosschleife & wozu braucht man /* und */ Java Basics - Anfänger-Themen 19
J Endlosschleife bei Try-Catch? Java Basics - Anfänger-Themen 3
S Endlosschleife - Warum? Java Basics - Anfänger-Themen 1
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
C Collatzfolge endlosschleife. Java Basics - Anfänger-Themen 4
D Array in Endlosschleife überschreibt vorherige Werte Java Basics - Anfänger-Themen 4
E Eulersche Zahl berechnen, Endlosschleife Java Basics - Anfänger-Themen 2
N Endlosschleife... Warum? Java Basics - Anfänger-Themen 12
P Kapselung Problem - Endlosschleife Java Basics - Anfänger-Themen 10
M Endlosschleife bricht durch switch ab Java Basics - Anfänger-Themen 17
D Endlosschleife und ich komme nicht raus! Java Basics - Anfänger-Themen 8
N Erste Schritte Endlosschleife und Exception Java Basics - Anfänger-Themen 5
R Endlosschleife nach InputMismatchException Java Basics - Anfänger-Themen 2
S Endlosschleife? Java Basics - Anfänger-Themen 2
T Endlosschleife Java Basics - Anfänger-Themen 2
Z Endlosschleife Java Basics - Anfänger-Themen 6
T Endlosschleife Java Basics - Anfänger-Themen 12
H Wieso ist das eine Endlosschleife? Java Basics - Anfänger-Themen 8
C ungewollte Abbrüche in einer Endlosschleife Java Basics - Anfänger-Themen 6
E komische endlosschleife Java Basics - Anfänger-Themen 6
7 Endlosschleife pausieren Java Basics - Anfänger-Themen 11
F .readLine() erzeugt endlosschleife Java Basics - Anfänger-Themen 4
R Wieso hänge ich hier in einer Endlosschleife (vermute ich zumindest)? Java Basics - Anfänger-Themen 2
F Falscheingabe abfangen - Endlosschleife Java Basics - Anfänger-Themen 5
R warum endlosschleife? Java Basics - Anfänger-Themen 7
W Fakultät, warum Endlosschleife? Java Basics - Anfänger-Themen 15
S JTable Endlosschleife Java Basics - Anfänger-Themen 5
J Aus endlosschleife kommen Java Basics - Anfänger-Themen 5
R Endlosschleife verhindert das Schließen des Fensters Java Basics - Anfänger-Themen 10
Povlsen84 Endlosschleife Java Basics - Anfänger-Themen 5
V Bubble Sort endet in Endlosschleife Java Basics - Anfänger-Themen 4
Antoras Endlosschleife Java Basics - Anfänger-Themen 8
J Wartezustand in Endlosschleife - bessere Alternativen Java Basics - Anfänger-Themen 20
H Problem beim Einlesen einer Datei (Endlosschleife ?) Java Basics - Anfänger-Themen 3
N Endlosschleife? Java Basics - Anfänger-Themen 3
V mehrere Threads starten + Endlosschleife Java Basics - Anfänger-Themen 3
I Hilfe wer findet mein Fehler in bei der Endlosschleife Java Basics - Anfänger-Themen 7
G Sound/Endlosschleife/Abbruchproblem Java Basics - Anfänger-Themen 3
G HappyNumbers - Endlosschleife Java Basics - Anfänger-Themen 11
0 Endlosschleife beim Integer Array mischen? Java Basics - Anfänger-Themen 3
M OutputStream funktioniert nur in Endlosschleife ? Java Basics - Anfänger-Themen 4
G Endlosschleife, aber warum? Java Basics - Anfänger-Themen 12
G Endlosschleife beenden Java Basics - Anfänger-Themen 10
F Mehrere Server Sockets in einer Anwendung Java Basics - Anfänger-Themen 9
B Input/Output Dateien >65536B über Sockets übertragen Java Basics - Anfänger-Themen 12
M Sockets und Threads Java Basics - Anfänger-Themen 2
M Streams und Sockets Java Basics - Anfänger-Themen 3
P Streams mit Sockets Java Basics - Anfänger-Themen 7
A XML über Sockets Java Basics - Anfänger-Themen 5
A PrintWriter und Scanner bei Sockets Java Basics - Anfänger-Themen 2
P Programme für Sockets Java Basics - Anfänger-Themen 2
B Client - Server Verbindung über sockets mysql DB ansprechen? Java Basics - Anfänger-Themen 6
M Problem mit Sockets Java Basics - Anfänger-Themen 2
S Allgemeine Frage zu Sockets Java Basics - Anfänger-Themen 23
T Fernsteuerung mittels Sockets (Architektur okay?) Java Basics - Anfänger-Themen 4
S Sockets und Synchronisation Java Basics - Anfänger-Themen 7
S Sockets and InputStream Java Basics - Anfänger-Themen 2
M Sockets. Bekomm keine Antwort vom Server. Java Basics - Anfänger-Themen 7
D Multithread Sockets"Address already in use"Error Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben