Autor Beitrag
Carsten Hölscher
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20

WIN XP, WIN 2000
Delphi 7 Pro
BeitragVerfasst: Fr 28.04.06 10:57 
Meine Frage in Kurzform: Wie bringt man den Indy-TCP-Server dazu, einen write-Befehl blockierend auszuführen?

Evtl. verstehe ich auch irgendwas faslsch, darum etwas ausführlich: Ich möchte Daten zwischen Client und Server in beide Richtungen austauschen. Jedes Programm soll dem anderen je nach Bedarf und i.d.r. unregelmäßig ein paar Daten schicken. Ich teste das z.Z. mit einfachen strings, die per Athread.connection.writeln() und readln verschickt werden. Während das readln immer blockiert, bis die Daten wirklich unterwegs sind, läuft das writeln sofort weiter. Selbst wenn ich den Client nur verbinde und dann komplett im Leerlauf "dümpeln" lasse, kann der Server jede Menge writeln abschicken. Gewünscht wäre aber ein blockieren, bis der Client die Daten abgenommen hat. Nach meinem Veständnis sollte sich indy eigentlich auch blockierend verhalten, oder liege ich da falsch?

Vielen Dank im voraus
Carsten
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Fr 28.04.06 12:09 
also wie man jetzt dein Problem konkret löst, weiß ich lieder nicht.
Aber ich würde dir mal die SimpleTCP Komponenten hier aus dem Forum (bei den OpnSource Units) empfehlen.
Damit lässt sich ein Dateitransver sehr komfortabel lösen !

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Carsten Hölscher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20

WIN XP, WIN 2000
Delphi 7 Pro
BeitragVerfasst: Fr 28.04.06 12:23 
Das setzt aber noch auf Indy auf, oder? Eigentlich nicht das, was ich suche.

Ich denke ja eher, daß Indy hier wohl schon eine Funktionalität bietet, um trotz blockierender Sockets asynchon arbeiten zu können und die möchte ich einfach nur deaktivieren.

Carsten