![]() |
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:
Methode die an Displays an alle senden soll:
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;
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; |
Re: TIdCmdTCPServer: Client merken und irgendwann anschreibe
Ich konnte das jetz zurückverfolgen bis in diese Zeile:
Delphi-Quellcode:
In der IdWinsock2 check ich allerdings nichtsmehr, da gibts irgendwie keine Select Methode :gruebel:
unit IdStackWindows
.. LResult := IdWinsock2.Select(0, AReadSet, AWriteSet, AExceptSet, nil); |
Re: TIdCmdTCPServer: Client merken und irgendwann anschreibe
Weis keiner Rat? :?
|
Re: TIdCmdTCPServer: Client merken und irgendwann anschreibe
*push* :shock:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 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