Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TIdCmdTCPServer: Client merken und irgendwann anschreiben (https://www.delphipraxis.net/119362-tidcmdtcpserver-client-merken-und-irgendwann-anschreiben.html)

Angel4585 25. Aug 2008 12:58


TIdCmdTCPServer: Client merken und irgendwann anschreiben
 
Hallo,

ich habe meinem TIdCmdTCPServer ein paar Commands hinzugefügt und möchte jetzt bei einem(dem Login Kommando) die Verbindung zum Client speichern und irgendwann nutzen um ihn anzuschreiben.

Ich speichere als das TIdContext des TIdCommand welches ich beim Login-Kommando Ereignis übergeben bekomme in eine TList.

Das Problem ist, wenn ich bei der TIdConnection des TIdContext dann SendCmd aufrufe bleibt der Server an dieser Stelle hängen und beim Client kommt nichts an.

Wo habe ich diesmal meinen Denkfehler?

Login Kommando Ereignis:
Delphi-Quellcode:
procedure TsvcTCPDienst.IdCmdTCPServer1TIdCommandHandler0Command(
  ASender: TIdCommand);
var ltype : string;
begin
ASender.Reply.Code:='201';
ASender.Reply.Text.Text:='Logged in';
ASender.SendReply;//Das kommt ganz normal an
FDisplay.Add(ASender.Context);
end;
Methode die an Displays an alle senden soll:
Delphi-Quellcode:
procedure TsvcTCPDienst.SendToDisplays(AText : string);
var
i : integer;
LC: TIdContext;
begin
for i := 0 to Pred(FDisplay.Count)do
  begin

    LC:=TIdContext(FDisplay.Items[i]);
    if(LC.Connection.Connected)then
      begin
      LC.Connection.SendCmd(AText,[222]);//Da hakts
      end
    else WriteLog('Dienst: Display not connected');

    LC:=nil;
  end;
end;

Angel4585 25. Aug 2008 14:04

Re: TIdCmdTCPServer: Client merken und irgendwann anschreibe
 
Ich konnte das jetz zurückverfolgen bis in diese Zeile:
Delphi-Quellcode:
unit IdStackWindows
..
    LResult := IdWinsock2.Select(0, AReadSet, AWriteSet, AExceptSet, nil);
In der IdWinsock2 check ich allerdings nichtsmehr, da gibts irgendwie keine Select Methode :gruebel:

Angel4585 26. Aug 2008 06:43

Re: TIdCmdTCPServer: Client merken und irgendwann anschreibe
 
Weis keiner Rat? :?

Angel4585 28. Aug 2008 14:37

Re: TIdCmdTCPServer: Client merken und irgendwann anschreibe
 
*push* :shock:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 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