Einzelnen Beitrag anzeigen

1aa

Registriert seit: 28. Sep 2008
48 Beiträge
 
Delphi XE5 Enterprise
 
#1

Fehler mit Socket komponente

  Alt 12. Aug 2013, 20:38
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
Miniaturansicht angehängter Grafiken
etest.png  
  Mit Zitat antworten Zitat