Nun gut
wir halten also fest: Die Units sind vermurkst.
Trotzdem muss man doch den MemoryLeak da raus bekommen können oder?
Zeichnkette Objekt wird hier freigegeben:
Delphi-Quellcode:
procedure Tclientverbindung.ClientSocketRead( Sender: TObject; Socket:
TCustomWinSocket );
var
lNachricht: Zeichenkette;
begin
inherited ClientSocketRead( Sender, Socket );
while not hatListe.istLeer do begin
hatListe.zumAnfang;
lNachricht := ZeichenketteObjekt( hatListe.aktuelles ).inhalt;
hatListe.entferneAktuelles; //Hier denke ich zumindest
bearbeiteNachricht( lNachricht );
end;
end;
entferneAktuelles macht folgendes:
Delphi-Quellcode:
procedure Liste.entferneAktuelles;
var
lZeiger: Knoten;
begin
if not ( istDavor
or istDahinter )
then begin
if hatAktuelles = hatAnfang
then
hatAnfang := hatAnfang.nachfolger
else begin
hatAktuelles.vorgaenger.setzeNachfolger( hatAktuelles.nachfolger );
hatAktuelles.nachfolger.setzeVorgaenger( hatAktuelles.vorgaenger );
end;
lZeiger := hatAktuelles;
hatAktuelles := hatAktuelles.nachfolger;
lZeiger.free;
//Hier wird es freigebgen
dec( zLaenge );
end
end;
Tut mir Leid, wenn ich euch mit diesem ganzen Kram "belästige"
Wie schon richtig vermutet, habe ich diese Units aus der Schule...
Das dieses ganze Eingedeutsche nicht so schön ist, dem würde ich ebenfalls zustimmen.
Was gibt es denn für Alternativen?
Die Units werden dafür gebraucht eine Netzwerkverbindung aufzubauen und zwischen einem Server und Clients Daten auszutauschen.
Gibt es evtl. andere Projekte/BibliothekenProgramme die "schöner" sind?
MfG