[.NET] Bandbreite beschränken

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Sypherxtc, 2. August 2007 .

  1. 2. August 2007
    Bandbreite beschränken

    Moin!

    Vorweg: Es handelt sich um einen Teil eines P2P- Programms.

    Arbeite zur Zeit an einem Projekt, in dem u.a. später Dateien übertragen werden sollen (Über Sockets via Send/Receive in Client/Server)
    Die Übertragung an sich ist kein Problem, das hab ich schonmal gemacht.

    Die Frage ist nun, ob und wenn ja, wie man eine Bandbreitenbeschränkung einbauen kann? Hat das Socket- Objekt eine entspr. Funktion? (Habe soweit nichts gefunden)
    Das Problem ist auch, dass evt mehrere Sockets geöffnet sein werden, da man ja mehrere Downloads auf einmal laufen haben wird.

    Gibt es eine Funktion o.ä. (WinAPI?), um dem Programm generell nur XX kB/sec Bandbreite zur Verfügung zu stellen?

    Gibt es vielleicht eine Möglichkeit, sich Bandbreite zu reservieren, so dass man immer minimal 5% der Bandbreite für Kommunikation nutzen kann? (Logindaten, sonstige Informationen abseits des Dateitransfers)

    Danke im Vorraus, ich werd selbst mal weitersuchen... Aber vielleicht hat hier ja irgendwer mit ähnlichem schonmal gearbeitet...
     
  2. 2. August 2007
    AW: Bandbreite beschränken

    aus deinem text ist nicht verständlich, ob es sich um dein eigenes programm handelt oder um eine fremdanwendung.

    bei deinem eigenen programm:
    wenn blos 50kb pro sekunde rausgehen sollen, dann mach doch ne warteschleife und schick pro sekunde auch nur 50kb.

    bei ner fremdanwendung:
    wirst du dir mit reinem .net schwertun. du könntest jede exe hooken die zugriff zum inet hat oder du schreibst ne netzwerkschnittstelle und lässt alle programme über diese laufen und kannst sie so beschränken.

    falls du ne fremdanwendung beschränken willst, geb ich dir den guten rat dir die zeit zu schenken und es garnicht erst zu versuchen.
     
  3. 2. August 2007
    AW: Bandbreite beschränken

    Nein, geht um ein eigenes Programm, sry, dasses ein wenig verwirrend geschrieben ist...

    Das mit den 50 pro Sekunde hab ich mir auch schon gedacht, allerdings beschränkt das doch nicht wirklich die Bandbreite? Nehmen wir an User XY will nebenbei spielen, stellt sein Downloadlimit auf 30kB/sec.

    Dann wird doch im Prinzip ca 0,5sec mit voller Bandbreite und 0,5sec mit 0kB/sec heruntergeladen oder irre ich mich? Im Endeffekt würde das doch dann bedeuten, dass User XY 0,5sec lang nen Ping von 20 und 0,5sec lang nen Ping von 300...
     
  4. 2. August 2007
    AW: Bandbreite beschränken

    Hm ne..

    sagen wir du verschickst immer päcken von 2 KB.
    Und er mag 30 KB/s.

    Dann musst du das halt so timen, dass in der 1 sekunde 15 päckchen verschickt werden. das wären dann ungefähr alle 66 ms ein Päckchen.
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.