AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TClientSocket Problem!
Thema durchsuchen
Ansicht
Themen-Optionen

TClientSocket Problem!

Ein Thema von ScorpionKing · begonnen am 11. Feb 2006 · letzter Beitrag vom 12. Feb 2006
Antwort Antwort
ScorpionKing

Registriert seit: 25. Feb 2005
37 Beiträge
 
#1

TClientSocket Problem!

  Alt 11. Feb 2006, 17:32
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:
client.SendText('hallo');
str := client.Read(); // ??
Wie ist das möglich?

MfG, Scorpionking!
Sebastian
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#2

Re: TClientSocket Problem!

  Alt 12. Feb 2006, 07:29
Zitat:
Ich möchte aber gleich in der Prozedur darauf zurückgreifen, was der Server schreibt.
Warum ? Arbeite doch einfach in der dafür vorgesehenden OnRead-Prozedur damit. Sollte es nämlich mal zu Netzwerkproblemen kommen und der Server nicht gleich etwas zurücksenden kann, wird der Text vermutlich nicht vor der Abarbeitung der Prozedur ankommen.
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: TClientSocket Problem!

  Alt 12. Feb 2006, 11:00
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 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