Od kilku dni szukam u wujka google jak pobrać listę klientów podłączonych do serwera (Datasnap). Ponizej prezentuje kod:

procedure TMyDSService.DataSnapServerConnect(DSConnectEventObject: TDSConnectEventObject);
var
  Conn: TIdTCPConnection;
begin
   {Czesc A}  
   Memo1.Lines.Add('Client info: ' + DSConnectEventObject.ChannelInfo.Info);

   {Czesc B}
   Conn := TIdTCPConnection(DSConnectEventObject.ChannelInfo.Id);
   Memo1.Lines.Add('Client ' + Conn.Socket.Binding.PeerIP +':' + IntToStr(Conn.Socket.Binding.PeerPort));
end;

Cześć pierwsza działa poprawnie gdyż uzyskuje adres ip wan klienta który się przyłączył do serwera, chyba że klient jest na tym samym komputerze co serwer to uzyskuje ip lokalne komputera.

Natomiast druga cześć doprowadza do błędu AV. Conn przyjmuje wartość nil lub niemożliwe do podejrzenia co w przypadku wykonania kolejnej lini kodu daje nam AV.

Ten fragment kodu znalazłem na kilku stronach w sieci i jest uznany jako działający poprawnie, Gdzie szukać przyczyny błędu?