Entwickler-Ecke
Netzwerk - FTP - Bandbreiten-Limitierung
Raven280438 - Mo 05.12.11 14:33
Titel: FTP - Bandbreiten-Limitierung
Hi,
ich habe ein Progamm, mit dem man u.A. Dateien per FTP runterladen kann. (per FtpWebRequest).
Jetzt möchte ich aber gerne die Bandbreite, die genutzt wird, begrenzen.
Meine Idee wäre zu verfolgen, wieviele Bytes in einer bestimmten Zeitperiode runtergeladen wurden (z.B. pro Sekunde, oder pro Zehntelsekunde etc.) und wenn das Limit erreicht ist, per Sleep für den Rest der Zeitperiode den Thread anzuhalten (der FTP-Transfer läuft in einem extra Thread).
Ist diese Idee praktikabel oder gibt es bessere Lösungen?
Gruß
Raven280438 - Mi 07.12.11 10:05
Hi,
danke für die Antwort.
Der Quellcode ist ziemlich komplex, ich hoffe ich hab an der richtigen Stellen gesucht.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| internal void WaitFor() { if (enabled) { double totalRate = DownloadManager.Instance.TotalDownloadRate; if (totalRate > maxLimit) { currentWait += BalancerUp; } else { currentWait = Math.Max(currentWait + BalancerDown, 0); } Thread.Sleep(TimeSpan.FromMilliseconds(currentWait)); Debug.WriteLine("TotalDownloadRate = " + totalRate); Debug.WriteLine("maxLimit = " + maxLimit); Debug.WriteLine("currentWait = " + currentWait); } } |
Das sollte doch genau Das sein, wie ich es mir oben gedacht habe, oder?
Gruß
cemolade - Mi 07.12.11 23:46
jap
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!