Η μηδενική διεύθυνση UDP ASSOCIATE του Indy δεν είναι ο προορισμός του datagram
Ξεχωρίστε τη διεύθυνση συσχέτισης του πελάτη, το relay SOCKS που επιστρέφεται και τον προορισμό που κωδικοποιείται σε κάθε πακέτο UDP.
Το 0.0.0.0:0 σε ένα αίτημα Indy UDP ASSOCIATE μπορεί να είναι σκόπιμο. Το αίτημα περιγράφει το αναμενόμενο τελικό σημείο UDP της πλευράς πελάτη και το RFC 1928 επιτρέπει μηδενικά όταν αυτό είναι άγνωστο. Δεν επιλέγει την τελική υπηρεσία.
Το BND.ADDR/BND.PORT της απάντησης προσδιορίζει το relay στο οποίο ο πελάτης στέλνει ενθυλακωμένα datagrams.
TCP control: client → SOCKS5 proxy → UDP association reply
UDP payload: client → returned relay address → target serviceΣτο Indy, το TIdUDPClient.Connect καλεί το OpenUDP του διαφανούς proxy. Το TIdSocksInfo παρέχει τα μηδενικά πεδία συσχέτισης. Αργότερα, το SendBuffer περνά την επιθυμητή υπηρεσία στο SendToUDP, το οποίο χτίζει την κεφαλίδα προορισμού SOCKS UDP πριν από τα δεδομένα εφαρμογής.
Αν η συσχέτιση πετύχει αλλά η κίνηση αποτυγχάνει, εξετάστε το relay που επιστράφηκε, τον κωδικοποιημένο προορισμό και τη διαδρομή απάντησης UDP. NAT/τείχη προστασίας μπορούν να επιτρέπουν την ανταλλαγή TCP ενώ αποκλείουν το UDP.
Κρατήστε τη σύνδεση ελέγχου TCP ανοιχτή· το κλείσιμό της τερματίζει τη συσχέτιση. Τα SOCKS4/4a δεν έχουν αυτή τη λειτουργία και η ονομασία SOCKS5 από μόνη της δεν εγγυάται ότι ένας διακομιστής υποστηρίζει UDP.