# Probleme beim Beschränken der Geschwindigkeit



## Stefan1200 (6. Aug 2005)

Hi.

Bei meinem kleinen Download Manager wollte ich jetzt gerne ein Feature einbauen, um die Download Geschwindigkeit auf einen einstellbaren Wert zu beschränken. Zum Lesen des Socket Input Streams verwende ich den BufferedInputStream, zum Schreiben in eine Datei den BufferedOutputStream. Ich habe das so gecodet, das er die Bytes der letzten Sekunde zählt, sollte das Limit überschritten werden, wird der Rest bis zur vollen Sekunde ermittelt und mit Thread.sleep() schlafen gelegt.

Das funktioniert mehrere Minuten wunderbar, genau so wie ich das wollte.
Aber nach mehreren Minuten, völlig zufällig, erhalte ich folgende Exception, beim Lesen aus dem Input Stream:

java.net.SocketException: Software caused connection abort: recv failed

Ich verstehe leider nicht genau, warum diese Exception kommt, und schon gar nicht, wie ich das Problem beseitige.
Hat jemand eine Idee?


----------



## 8ull23y3 (6. Aug 2005)

Hier mal was zu deiner Fehlermeldung aus dem Sun-Forum:

http://forum.java.sun.com/thread.jspa?threadID=642263&tstart=0

Scheint in etwa sowas zu dein was ich schon vermutet habe.
Sonst fällt mir dazu auch nichts ein aber ich suche später nochmal.


----------



## 8ull23y3 (6. Aug 2005)

Ich hab hier auf die schnelle nochn fertigen java download manager gefunden.

OpenSource mit Source kannste ja mal angucken. Ich hoffe das hilf dir in irgendeiner Weise.

http://www.javaforu.com/speeddemon/speeddemonIndex.htm


----------



## 8ull23y3 (9. Aug 2005)

Hi Stefan... da von den oberen Sachen ja nicht wirklich was nützlich war hab ich nochmal in die API geschaut und etwas vielversprechendes gefunden. http://java.sun.com/j2se/1.4.2/docs/api/java/net/Socket.html#setTrafficClass(int) <-- *heul* ich hoffe damit kannste was anfangen.


----------



## byte (9. Aug 2005)

hat nix mit dem problem zu tun. damit setzt du ein feld im header des ip pakets. die ip schicht hat aber nix mit der übertragungsgeschwindigkeit zu tun.


----------



## 8ull23y3 (9. Aug 2005)

:shock: Jo, da haste wohl recht *grml* /me sucht weiter 

[EDIT] So, ich hab mich jetzt einige Zeit mit Onkel Google unterhalten aber zum verrecken nichtx finden können... [/EDIT]


----------



## TRunKX (18. Aug 2005)

...hmmm habe das mal so gemacht wie du gesagt hast das mit dem sleep. Und mein Protokoll Filter hat mir eine "kranke" Verbindung angezeigt.... also hat es damit zu tun das du "stotterst" Das mögen Server nicht und je nachdem wieviel du "stotterst" bricht die Serverseite ab. Oder halt deine Con bricht weil vom Server nix kommt und er weiss das seine eigene Schuld ist .... aber mit der Exception kann ich auch nix anfangen ... kam bei mir ne etwqas andere!


----------

