Entwickler-Ecke

Internet / Netzwerk - Handle bei OnDisconnect schon tot?


Gudu23 - Mo 17.05.10 17:50
Titel: Handle bei OnDisconnect schon tot?
Hi,

ich habe einen Indy server mit folgendem Code:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TfrmMain.serverIndyDisconnect(AContext: TIdContext);
var I:Integer;
begin
    for I := 0 to gridClients.RowCount - 1 do
    begin
      if gridClients.Cells[0, I] = IntToStr(AContext.Binding.Handle) then
      begin
         gridClients.Rows[I].Delete(I);
      end;
    end;

    WriteLogEntry('Connection closed... (' + AContext.Binding.PeerIP+')');
end;

Leider funktioniert dies nicht, da die Binding.Handle in dem Moment schon tot ist.
Ich finde in den Indy-Membern keinen anderen eindeutigen Wert, die PeerIP ist zwar noch vorhanden und gültig, aber ja nicht eindeutig, grade was localhost / interne IPs angeht.

Jemand eine Idee, wie ich eine Eindeutigkeit feststelle um Daten in ein grid zu sammeln und auch nur die richtige Spalte wieder zu entfernen?

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


Tryer - Mo 17.05.10 20:35

Was ist mit Integer(AContext)?

Grüsse, Dirk