Beim Herunterladen einer Datei die Geschwindigkeit drosseln

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Beim Herunterladen einer Datei die Geschwindigkeit drosseln

    Hallo,

    ich habe da mal eine Frage. Ist es möglich den Download Speed zu limitieren oder zu drosseln? Ich bin gerade dabei einen Launcher zu programmieren für eine bestimmte App, und möchte das der User selbst entscheiden kann ob er eine unbegrenzte Downloadgeschwindigkeit hat, oder diese auf 1 oder 2 MB/s limitieren kann. Wenn ja, wie ist das möglich? Ich habe schon das ganze Internet durchforstet, finde auch etwas aber leider nur für C#. Ist es auch mit VB möglich?

    Liebe Grüße,

    crashoverride
    Wenn du einen HTTPWebRequest nutzt, brauchst einen Stream um die Daten zu lesen. Beim lesen mit einer Schleife, den Thread kurz pausieren, so kannst du recht einfach ein Limit festlegen, musst dann aber wohl einen recht kleinen Buffer nutzen.
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „NoIde“ ()

    crashoverride schrieb:

    leider nur für C#. Ist es auch mit VB möglich?


    Es gibt online Converter welche dir C# in VB.Net Code umwandeln ... die Sprachen sind sich nämlich recht ähnlich.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @crashoverride Beide Sprachen sind äquivalent.
    Alles, was in VB.NET geht, geht auch in C#.
    Die Umkehrung gilt nicht ganz so allgemein, es gibt z.B. in C# das Keaword unsafe {}, das geht in VB.NET nicht.
    Vom Compiler werden beide Sprachen in den sogenannten IL-Code (Intermediate Language) übersetzt, der dann in der Exe steht.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Alles, was in VB.NET geht, geht auch in C#.


    Nicht alles glaube ich. Man kann z.B kein Enum in einem Interface definieren. Mehr dazu: en.wikipedia.org/wiki/Comparis…arp_and_Visual_Basic_.NET
    Aber das meiste natürlich schon.

    Pascalony schrieb:

    Nicht alles glaube ich.
    Eigentlich schon. Die Unterschiede sind eigentlich nur Sachen, die sich äquivalent (tw. sogar sauberer) durch andere Möglichkeiten in C# realisieren lassen. Insofern ist imo RodFromGermanys Implikation schon richtig. Umgekehrt gilt dies natürlich nicht.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @Pascalony Zur Kenntnis genommen. Da könnte man ja einige Interface-DLLs in VB.NET schreiben. :D
    Das liegt m.E. daran, dass Microsoft unbedingt ein gewisses Maß an Kompatibilität zu VB6 erhalten will.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Doch alles. Nur was VB.Net teilweise hat sind halt syntactic sugar. Also möglichkeiten Dinge abzukürzen und einfacher zu schreiben. Aber man wird es in C# immer auch schreiben können(wobei der erzeugte IL Code dann ziemlich äquivalent sein umgekehrt jedoch nicht. C# hat also tatsächliche Sprachfeatures die in VB.Net nicht verwendbar sind und auch nicht anders programmiert werden kann...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    jvbsl schrieb:

    Nur was VB.Net teilweise hat sind halt syntactic sugar.

    Trade schrieb:

    Eigentlich schon. Die Unterschiede sind eigentlich nur Sachen, die sich äquivalent (tw. sogar sauberer) durch andere Möglichkeiten in C# realisieren lassen.


    Das will ich auch gar nicht abstreiten. Es war eben auch noch auf den Kommentar davor bezogen, dass man einfach Online-Konverter verwenden könnte, was eben manchmal auch Probleme geben kann. Und klar ist das syntactic sugar aber es ist eine Frage der Definition "ob etwas möglich ist." Es ist nicht möglich in C# ein enum in einem Interface zu definieren. Klar gibt es ein Workaround, aber direkt ist das nicht möglich und das fällt eben unter meine Definition von "unmöglich". Z.B existiert auch das My-Namespace nicht in C# (wofür ich überaus dankbar bin), da gibt es dann auch Probleme bei Convertern, da diese nicht das Äquivalent in C# automatisch verwenden.

    RodFromGermany schrieb:

    Da könnte man ja einige Interface-DLLs in VB.NET schreiben.



    Tatsächlich ist es bei mir noch nie vorgekommen, dass ich ein enum in einem Interface definieren wollte (wsl weil es in C# sowieso nicht geht). Hättest du etwa konkrete Verwendung dafür? :D

    Edit:

    RodFromGermany schrieb:

    Das liegt m.E. daran, dass Microsoft unbedingt ein gewisses Maß an Kompatibilität zu VB6 erhalten will.



    Und das ist meiner Meinung nach ein großer Fehler.

    Pascalony schrieb:

    Hättest du etwa konkrete Verwendung dafür?
    Ja.
    Interface zur Ansteuerung von Kameras verschiedener Hersteller, da wäre ein beinhaltetes Enum z.B. für Properties schon nützlich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Klar gibt es ein Workaround, aber direkt ist das nicht möglich und das fällt eben unter meine Definition von "unmöglich". Z.B existiert auch das My-Namespace nicht in C# (wofür ich überaus dankbar bin), da gibt es dann auch Probleme bei Convertern, da diese nicht das Äquivalent in C# automatisch verwenden.

    Ich halte sowas halt nur für sinnvoll, wenn es nicht außerhalb benutzt wird, also mit C# 8 eher sinnvoll, als jetzt bisher :D Also nested typen wirklich nur eher selten. Vlt. noch für enumeratoren, ansonsten fällt mir nichts ein, wo ich es als nested als schön bezeichnen wurde. Auch nicht bei dem Fall von @RodFromGermany, denn das heißt, dass diese Interfaces ja ziemlich stark Herstellerspezifisch ist, wäre mMn eher was für ne Baseclass(aber schwer zu sagen ohne konkreten Fall)...
    Aber ich muss zugeben ist in C# tatsächlich nicht möglich. Genauso wenig wie man in ein interface auch keine klasse bekommt, denn ein Enum in .Net ist nichts anderes als eine Klasse die von System.Enum erbt. Gibt aber ein paar Sachen die IL kann, die weder C# noch VB.Net können, frag mich ob das dann irwann kommt, oder einfach gesagt wird: braucht man nicht^^
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    jvbsl schrieb:

    Herstellerspezifisch
    nicht, jedoch anwendungsspezifisch.
    Bei genau diesem Ding habe ich gemerkt, dass es nicht möglich ist, in C# ein Enum in ein Interface zu packen. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    petaod schrieb:

    Damit meine ich direkte Unterstützung
    Ja, gibt es.
    Die Codeanalyse meckert aber rum, Du sollst es besser durch multiple Überladungen machen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    jvbsl schrieb:

    Hab ich noch nie gesehen
    Konnte ich leider mit nem 08-15-Projekt nicht reproduzieren, es war etwas komplexeres.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!