Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Server-Antwort an mehrere Clients senden mit Indy

  Alt 18. Jun 2015, 11:58
Also dazu habe ich hier ein entsprechendes Thema gefunden:

http://stackoverflow.com/questions/5...nt-delphi-indy

Ich könnte dementsprechend einen Thread machen, der prüft, ob Eingänge vorliegen:
Delphi-Quellcode:
procedure TCommThread.Execute;
var
  Msg: String;
begin
  try
    while (AClient.Connected) do begin
       AClient.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8;

       Msg := AClient.IOHandler.ReadLn;

       if Msg = 'irgendwas...then begin
         Sychronize (dasOderdas);
       end;

       if Msg = 'DisconnectClientthen begin
         break; // Thread beenden
       end;
    end;
  except
    on E:Exception do
      ErrorMsg := 'Error! ' + E.ClassName + '||' + E.Message;
  end;
end;
Nach ReadLn pausiert der IndyThread solange, bis eine Nachricht vom Server vorliegt.

Aber offesichtlich ist dann die Komponente solange auch nicht für das Senden von Nachrichten ansprechbar, oder?

Wenn ich versuchen mit der Componente etwas zu senden, kommt beim Server nur ein leerer String an (er sendet zwar, aber ohne Inhalt?).

EDIT: Korrektur: War mein Fehler, hatte beim Senden vergessen eine Kommandokennung zu setzen, geht also doch!!

Es ginge also tatsächlich mit nur einer Client-Server-Verbindung sowohl aktives Senden und Empfangen vom Client aus, so wie vom Server aus zu ermöglichen. Oder könnte sich da etwas ins Gehege kommen, wenn die Clientkomponente gleichzeitig wartet und gleichzeitig sendet?

Geändert von Harry Stahl (18. Jun 2015 um 12:10 Uhr)
  Mit Zitat antworten Zitat