![]() |
TClientSocket Problem!
Hi Leute,
ich habe ein Problem mit dem TClientSocket. Ich habe eine Prozedur, in der Mit SendText etwas versendet wird, leider kommt dann das, was der Server antwortet nur in der OnRead-Funktion an. Ich möchte aber gleich in der Prozedur darauf zurückgreifen, was der Server schreibt. Bsp:
Delphi-Quellcode:
Wie ist das möglich?
client.SendText('hallo');
str := client.Read(); // ?? MfG, Scorpionking! |
Re: TClientSocket Problem!
Zitat:
|
Re: TClientSocket Problem!
Hi,
ich würde dich auch gerne nochmal fragen, warum du das so brauchst. Wenn ich mich nicht ganz irre, kannst du mit einem blockierenden Zugriff Synchronität erreichen, aber damit würdest du halt (wie der Name doch verrät) die restlichen Prozesse blockieren. Wenn du das Problem umgehen willst, müsstest du mit Threads anfangen und nicht-sequentielle Programmierung ist ein Komplex der für sich steht. Die Frage ist halt echt, ob es nötig ist in deinem Fall. Imho wäre ein zustandsfreies Protokoll wie TCP dann einfach ungeeignet. Dieses kann dir keine Verbindung garantieren, du weißt also nicht, wann und in welcher Reihenfolge dein Packete ihren Empfänger erreichen. Natürlich gilt für die Antworten genau das Selbe. Du weißt nicht mal, ob der Server nicht zwischen dem Empfang deiner Nachricht und dem Beantworten noch existiert. Wenn der sich spontan selbst sprengt, von Außerirdischen entführt wird oder einfach abstürzt, dann hättest du schon das Problem, dass du ewig wartest (und nie eine Antwort bekommst). Sinnvoller ist, dass du auf das entsprechende Event wartest, aber eben mit einem Timeout, dass du groß genug wählst (der Server braucht ja auch mal ein paar ms). Gruß Der Unwissende |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz