Hey,
ich habe ein spezielles Protokoll für die Sockets entwickelt, welches es ermöglicht Daten größer 8KiB praktisch an einem Stück zu senden, bzw so, dass sie als ein Paket ankommen. Des weiteren ist on-thy-fly Kompression mit
ZLib und eine Verschlüsselung mit RCx möglich. Jetzt ist mein Problem, dass mein Algorithmus nur dann funktioniert, wenn das Socket auf ctBlocking / ctThreadBlocking eingestellt ist, da sonst an einer Stelle gesendete Daten nicht ankommen.
Die
Unit findet sich im Anhang und wird, sobald sie fertiggestellt ist auch in der CodeLib veröffentlicht.
Wird in der SendBuffer Funktion ein Packet größer als PACKETSIZE verschickt, so werden erst so viele PACKETSIZE-große Buffer verschickt, wie möglich und dann die restlichen Daten.
Hier ist das Problem. Es kommt immer nur der erste PACKETSIZE große Buffer an, wenn das Socket nicht auf ctBlocking eingestellt ist. Das Protokoll ansich funktioniert ansonsten wunderbar.
Jetzt meine Frage: Was muss ich ändern, damit es auch bei ctNonBlocking funktioniert? Bzw kann ich irgendwie darauf warten, bis der "senden" Thread beendet wurde, bevor ist das nächste Paket sende?
Gruß
[edit=Christian Seehase]Anhang auf Wunsch von Zacherl entfernt. Mfg, Christian Seehase[/edit]