Indy's nul-UDP ASSOCIATE-adres is niet het datagramdoel
Onderscheid het associatieadres van de client, de teruggegeven SOCKS-relay en het doel dat in elk UDP-pakket wordt gecodeerd.
0.0.0.0:0 in een Indy UDP ASSOCIATE-verzoek kan opzettelijk zijn. Dat verzoek beschrijft het verwachte UDP-eindpunt aan clientzijde, en RFC 1928 staat nullen toe wanneer het onbekend is. Het selecteert niet de uiteindelijke dienst.
De BND.ADDR/BND.PORT van het antwoord wijst de relay aan waarnaar de client ingekapselde datagrammen stuurt.
TCP control: client → SOCKS5 proxy → UDP association reply
UDP payload: client → returned relay address → target serviceIn Indy roept TIdUDPClient.Connect de OpenUDP van de transparante proxy aan. TIdSocksInfo levert de nul-associatievelden. Later geeft SendBuffer de gewenste dienst door aan SendToUDP, die de SOCKS UDP-bestemmingsheader vóór de applicatiegegevens opbouwt.
Als de associatie slaagt maar het verkeer mislukt, onderzoek dan de teruggegeven relay, de gecodeerde bestemming en het UDP-antwoordpad. NAT/firewalls kunnen de TCP-uitwisseling doorlaten terwijl ze UDP blokkeren.
Houd de TCP-besturingsverbinding open; sluiten beëindigt de associatie. SOCKS4/4a missen deze bewerking, en de naam SOCKS5 alleen garandeert niet dat een server UDP ondersteunt.