Geschwindigkeitslimit beim Versenden mit Winsockets



  • Servus Leute,
    das Problem ist folgendes:
    Ich möchte mit meinem Programm Dateien mit einer bestimmten Höchstgeschwindigkeit (z.B. 10 kBytes/sec) an einen Client schicken. Mein erster Lösungsversuch war einen Timer zu benutzen und jede Sekunde neue 10 kBytes zu schicken. Was ist aber nun, wenn der Client ein 56k Modem hat? Dann kann er maximal mit 7 kBytes/sec empfangen und was passiert mit den anderen 3 kBytes/sec, die mein PC verschickt? Ich nehme an, die werden in irgend einem Buffer auf meinem PC zwischengelagert, bis sie weiterverschickt werden können. Wenn die Datei nun 1 GB groß ist, dann lagern sich über 300 MB mit der Zeit in meinem Arbeitsspeicher...
    Kurz: Wie kann ich überprüfen, ob der Sendepuffer für ein Socket wieder leer ist?

    Oder habt ihr andere Lösungsvorschläge?
    Bin für jede Hilfe dankbar,
    thx im Voraus,
    SocketLamer



  • send() blockiert IMHO, wenn der Empfänger nicht schnell genug ist.



  • Jepp danke, hast recht 🙂


Log in to reply