Ich hab zu test zwecken ein programm geschrieben welches sich mit der TClientSocket Komponente an einem TServerSocket anmelden soll klappt auch alles ohne Probleme.
Wenn der "Server" nicht läuft soll sie in regelmäßigen abständen versuchen eine Verbindung auf zu bauen
Code Ausschnitte:
Delphi-Quellcode:
.....
CS1: TClientSocket;
TimerCon: TTimer;
....
procedure CS1Connect(Sender: TObject; Socket: TCustomWinSocket);
procedure CS1Disconnect(Sender: TObject; Socket: TCustomWinSocket);
procedure CS1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
procedure CS1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure TimerConTime(Sender: TObject);
....
constructor TClient.Create;
begin
....
CS1 := TClientSocket.Create(
nil);
cs1.Host :=
IP;
CS1.Port := Port;
CS1.OnConnect := CS1Connect;
CS1.OnDisconnect := CS1Disconnect;
CS1.OnError := CS1Error;
CS1.OnRead := CS1Read;
....
TimerCon := TTimer.Create(
nil);
TimerCon.Interval := TimeIntervCon;
TimerCon.OnTimer := TimerConTime;
TimerCon.Enabled:=True;
end;
....
procedure TClient.CS1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
Cs1.Close;
ErrorCode := 0;
end;
procedure TClient.TimerConTime(Sender: TObject);
begin
if Not(CS1.Socket.Connected)
then
Begin
CS1.Open;
End;
end;
Wenn das programm jetzt eine zeitlang läuft, "frisst es kontinuierlich immer mehr Speicher und irgend wann kommt die Fehlermeldung (siehe Anhang).
Meine Frage jetzt wie kann ich den Speicher bereinigen bzw woran konnte der fehler liegen?
MFG Ertr