# URLs checken



## the7 (13. Jun 2009)

Hallo Leute,
ich schreibe gerade ein Programm, das u.a. überprüft, ob gewisse Dateien auf einem Server vorhanden sind, z.B. http://server/abc.php etc etc
Ich habe eine Textdatei, in der die Dateinamen drinne stehen, ich lese diese Datei Zeile für Zeile aus und überprüfe dann auf vorhandensein, das sieht so aus:


```
while((strLine = bfIn.readLine())!= null)
			{
				this.checkLink = new URL( this.Link + "/" + strLine.toString());
				this.checkLink.openConnection().setReadTimeout(5);
				this.checkLink.openConnection().setConnectTimeout(5);
				
				try {
					//this.checkLink.openConnection().connect();
					this.checkLink.openStream().close();
                                     }
                                catch ............
```

Da die Liste, der zu überprüfenden Daten immer länger wird, dauert das alles natürlich auch ein wenig. Problem ist, wenn eine URL nicht existiert, also der Server, bleibt das Programm hängen, obwohl ich ein Timeout gesetzt habe. Es scheint so, als ob er das Timeout nicht fressen würde.

Vielen Danke für die Tips im voraus


----------



## fjord (13. Jun 2009)

Ohne mir jetzt eine Lösung für dein Problem überlegt zu haben, würde ich dir raten mehrere Threads zu benutzen um gleichzeitig mehrere Dateien überprüfen zu können. Dann sollten Timeouts auch keine so große Rolle mehr spielen.

Ich glaube dein Timeout ist auch viel zu niedrig. Sind das nicht milliseconds? Eventuell ist er gar nicht in der Lage den TCP Handshake so auszuführen. Du solltest lieber irgendwas im Bereich von 15-20 Sekunden warten, eher mehr. Wenn du Threading machst hat das auch nicht so großen Einfluss auf dein Programm


----------



## the7 (13. Jun 2009)

ja threading war auch mein erster gedanke...
nur habe ich damit null erfahrung ....
werd mich wohl mal einarbeiten müssen


----------

