Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Sockets - Auf einen Thread warten trotz ctNonBlocking (https://www.delphipraxis.net/104906-sockets-auf-einen-thread-warten-trotz-ctnonblocking.html)

Zacherl 12. Dez 2007 16:30


Sockets - Auf einen Thread warten trotz ctNonBlocking
 
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.

:arrow: 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]

DP-Maintenance 12. Dez 2007 17:49

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Windows API / MS.NET Framework API" nach "Internet / LAN / ASP.NET" verschoben.
Netzwerkspezifisch

Zacherl 13. Dez 2007 13:44

Re: Sockets - Auf einen Thread warten trotz ctNonBlocking
 
Sorry, für bisschen zu frühes Pushen. Mache ich sonst ja nicht gerne, aber die Lösung ist diesmal dringend ..

Zacherl 19. Dez 2007 20:14

Re: Sockets - Auf einen Thread warten trotz ctNonBlocking
 
Nochmal *push* Evtl. einen Send() Hook benutzen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz