Einzelnen Beitrag anzeigen

Benutzerbild von seim
seim

Registriert seit: 11. Nov 2007
83 Beiträge
 
#1

Socket.ReceiveText in der Send-Funktion abfragen

  Alt 25. Okt 2008, 17:56
Hi,
üblicherweise sieht die Kommunikation in einem Socket so aus:

Delphi-Quellcode:
procedure TForm1.SendButton(Sender: TObject);
begin
  Socket1.Socket.SendText('ping,ping my server!');
  Log.Items.Add('Ping gesendet');
end;

procedure TForm1.OnRead(Sender: TObject; Socket: TCustomWinSocket);
begin
  if Memo1.Socket.ReceiveText = 'i''m onlinethen
    Log.Items.Add('Server Online');
end;
Jetzt brauche ich allerdings eine Funktion, die nach erfolgreicher Antwort ein True zurückgibt aber der Compiler versteht scheinbar kein deutsch
Delphi-Quellcode:
function Ping(IP:string): Boolean;
begin
  Socket1.Socket.SendText('ping,ping my server!');
  "Prüfe alle 5ms auf Antwort (TimeOut 2sek), wenn erhalten" do
    if Antwort = RichtigeAntwort then Result:= True;
end;
Ich würde das mit einer globalen Variable lösen, die von der OnRead procedure geändert wird, allerdings erfordert das eine while Schleife in der Sende procedure, die solange sinnlos ausgeführt wird und CPU Last verschlingt bis ein Text erhalten wurde..

jemand ne Idee?
  Mit Zitat antworten Zitat