我有一个带有 Indy TCPServer 和 TCPClient 的 Delphi 应用程序。我使用AContext.Bindind.Handle
来识别每个连接(错误?)。
所以我有一个显示连接的网格,我将在断开连接后删除条目:
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;
但是在断开连接事件中,句柄已经是空的(它曾经是 401xxxxx,所以最后一个整数)。
想法?