CAsyncSocket: Event: OnSend
-
Hallo zusammen,
Ich habe hier ein kleines Problem: Ich möchte zb 5000 kb daten senden, als daten buffer nehme ich 1 kb, dann mach ich ne while schleife bis 5000 durchgänge vorhanden sind oder ein fehler aufgetreten ist, wenn also der socket buffer voll ist, gibt es einen fehler und man kann im OnSend die weiteren Packete schicken... Dann muss man das letzte packet, also das wo es den fehler gegeben hat nocheinmal schicken?
Oder wie muss ich das machen?
Wäre sehr dankbar, wenn mir jemand das erklären könnte...Gruss Xantos
-
Moin,
warum machst du nicht nen Datenpuffer von 5000Kb, bisher hab ich keine Probleme gehabt größere Datenmengen zu verschicken (so gross waren aber auch noch keine), denn CAsyncSocket kümmert sich alleine darum Verlorengegangene Daten nachzusenden und Fehler beim Senden traten bei mir bisher nur dann auf, wenn die Verbindung abgerissen war, aus welchen gründen auch immer.
Wenn du die Dten per Shleife nachsenden willst, musst du nachgesendete Daten sortieren, das kann recht kompliziert werden, versuch es doch einfach mal mit dem 5000kb puffer
-
Der witz ist ja, dass diese 5 mb ein möglicher wert ist, das heisst die idee wäre, eine datei zu senden mit der grösse x und dann kann ich nicht alles in den arbeitsspeicher laden und dann auf einmal senden... was, wenn es 100 mb sind!? In einem Buch steht, dass OnSend aufgerufen wird, um das nächste Paket zu senden... Ich muss nur wissen, wie gross ein Paket ist, oder wie ich merke dass der Socket-Buffer voll ist und diese Funktion nachher aufgerufen wird...