Ορίστε το SOCKS5 UDP proxy του Qt πριν από τη δέσμευση του socket
Χρησιμοποιήστε το setProxy στο υπάρχον QUdpSocket και μετά διαβάστε την πραγματική δεσμευμένη διεύθυνση και θύρα αντί να υποθέσετε ότι διατηρήθηκε η ζητούμενη θύρα.
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
QStringLiteral("proxy.example.net"),
1080);
udpSocket->setProxy(proxy);Εφαρμόστε το στο υπάρχον QUdpSocket της εφαρμογής πριν από bind ή connect. Ο διακομιστής SOCKS πρέπει να υλοποιεί UDP association· οι σημαίες δυνατοτήτων του proxy και η επιτυχής περιήγηση μέσω TCP δεν δοκιμάζουν αυτή τη λειτουργία. Για μια επιτρεπόμενη δημόσια δοκιμή UDP, η λίστα διακομιστών μεσολάβησης SOCKS5 προσφέρει υποψήφιες διευθύνσεις, αλλά το UDP association και η πρόσβαση στον στόχο κάθε υποψηφίου πρέπει να επαληθεύονται χωριστά.
| Λειτουργία | Θέμα SOCKS5 UDP όπως τεκμηριώνεται από το Qt |
|---|---|
| bind | Μπορεί να λήξει με timeout |
| Αίτημα για μη μηδενική τοπική θύρα | Δεν εγγυάται ότι θα χρησιμοποιηθεί αυτή η θύρα |
| Έλεγχος αποτελέσματος | Διαβάστε localPort και localAddress για πραγματικές πληροφορίες |
Το relay προσθέτει μια διαδρομή UDP στην οποία η απώλεια πακέτων παραμένει πιθανή. Οι τιμές του λογαριασμού proxy χρησιμοποιούν τις ιδιότητες user/password του αντικειμένου.
Η αλλαγή του proxy δεν μπορεί να μετακινήσει ένα συνδεδεμένο socket. Ερμηνεύστε προσεκτικά και τις δοκιμές localhost: το Qt παρακάμπτει τα proxies δικτύου για τις τεκμηριωμένες διευθύνσεις localhost στο connectToHost, στο bind ή στο listen.