Zum Inhalt springen

Mehrere webseiten mit einem socket client lesen


mOSSpOWER

Empfohlene Beiträge

Ich muss mit jeden Tag Daten von max. 50 webseiten holen, die alle auf dem gleichen Webserver liegen. Nun erschien es mir relativ langsam, hier das URL object zu benutzen, also testete ich die Klasse socket. Musste aber bedauerlicherweise feststellen, dass ich immer dann, wenn ich die erste Seite gelesen hatte, keine weiteren lesen konnte, obwohl das socket connected und open ist. Muss ich denn für jede Seite ein eigenes Socket verwenden - das kann ich mir nicht vorstellen. Wenn ich dass jedoch mache, habe ich trotzdem einen Performancegewinn von 10 % gegenüber dem URL Objekt. Kann mir hier jemand helfen ?

Code sieht wie folgt aus.

Date timeStart = new Date(System.currentTimeMillis());

Socket socket = new Socket("217.12.5.42", 80);

BufferedReader bufferedReader1 = new BufferedReader(new InputStreamReader(socket.getInputStream()));

PrintWriter bufferedWriter1 = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);

bufferedWriter1.write("GET /q?s=" + "665510.DE" + "&d=t HTTP/1.0\r\n\r\n");

bufferedWriter1.flush();

int c = -1;

while((c = bufferedReader1.read()) != -1) {

System.out.print((char)c);

}

// Bis hierher funktioniert alles praechtig, jedoch wenn ich nun weiterschreiben möchte, bekomme ich zwar keine Fehlermeldung, jedoch beim lesen bekomme ich immer -1

bufferedWriter1.write("GET /q?s=" + "XYZ.DE" + "&d=t HTTP/1.0\r\n\r\n");

bufferedWriter1.flush();

// Hier ist nun immer die -1 beim Lesen

Kann mir hier jemand helfen, tausend dank schon mal im Voraus.

Gruß

mOSSpOWER

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das hab' ich auch schon probiert; isAlive = true, connected = true; ich konnte mir nicht vorstellen, dass ich immer wieder neues Socket aufmachen muss. Habe aber nun in einem anderen Forum gelesen, dass bei einem HTTP-Socket die Verbindung nach der Antwort wieder geschlossen wird. Ich werd noch mal weiterschauen, weil ich das irgendwie nicht glaube. Wäre doch bescheuert, wenn ich z.B. 50 Webseiten parsen möchten, die alle auf dem gleichen Webserver liegen, und ich jedesmal von vorne (neue Verbindung) beginnen muss. Danke trotzdem für Deinen Tipp. Du kannst mir glauben, dass ich alles erdenkliche probiert habe.

So long.

mOSSpOWER

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...