Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Kylix: idTCPServer.onExecute und TStringlist (https://www.delphipraxis.net/30346-kylix-idtcpserver-onexecute-und-tstringlist.html)

Chris1986 23. Sep 2004 18:15


Kylix: idTCPServer.onExecute und TStringlist
 
Hallo,
ich habe unter Kylix ein Konsolenprogramm geschrieben, das einen idTCPServer benutzt. Im Ereignis onExecute wird eine Prozedur aufgerufen, die eine Stringlist benutzt.
Da Stringlists ja nicht Threadsicher sind verwende ich eine CriticalSection. Trotzdem trennt der Server
die Verbindung zum Client, wenn ich die Stringlist per var Parameter an eine andere Prozedur übergebe.
Sprich: Es wird die Methode OnDisconnect aufgerufen, und der Client ist nicht mehr verbunden.

Vielleicht noch was zur CriticalSection:
Ich habe die Unit SyncObjs eingebunden und eine eine Variable CS vom Typ TCriticalSection deklariert. Was mach ich falsch?
Der Programmaufbau sieht in etwas so aus:
Delphi-Quellcode:
uses
  SyncObjs;


procedure sl1;
SL: TStringlist;
begin
  SL := TStringlist.Create;
  try
    sl2(SL);
  finally
    freeandnil(Slist);
  end;
end;

procedure sl2(var SList: TStringlist);
begin
  Slist.Clear;
  Slist.Add('456');
end;

procedure TServEvent.OnExecute(AThread: TIdPeerThread);
var msg: string;
begin
  msg := AThread.Connection.Readln
  if msg ='123'
    then begin
           CS.Enter;
           sl1(msg);
           CS.Leave;
         end;

end;

var
  Cs: TCriticalSection
begin
  CS := TCriticalSection.Create;
  TCPServer.active := true;
  readln;
  readln;
  CS.free;
end.
Ich hoffe ihr könnt mir helfen
Gruß
Christian


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