J'ai une application delphi avec un Indy TCPServer et TCPClient J'utilise le AContext.Bindind.Handle pour l'identification de chaque connexion (mauvaise?).Indy TCP Server - Handle OnDisconnect déjà supprimé?
j'ai donc une grille qui affiche les connexions et j'ôterai l'entrée après la déconnexion:
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;
Mais dans le Disconnect événement, la poignée est allready vide (Son jamais 401xxxxx, de sorte que le dernier numéro entier).
Des idées?
Un bon conseil. Utilisez toujours vos propres identifiants, n'utilisez pas les objets internes d'Indy et les identifiants comme des identifiants. –