Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Sockets - Auf einen Thread warten trotz ctNonBlocking

  Alt 12. Dez 2007, 17:30
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]
  Mit Zitat antworten Zitat