Ustaw proxy SOCKS5 UDP w Qt przed powiązaniem gniazda
Użyj setProxy na istniejącym QUdpSocket, a następnie odczytaj rzeczywiście powiązany adres i port, zamiast zakładać, że żądany port został zachowany.
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
QStringLiteral("proxy.example.net"),
1080);
udpSocket->setProxy(proxy);Zastosuj to do istniejącego QUdpSocket aplikacji przed bind lub connect. Serwer SOCKS musi implementować asocjację UDP; flagi możliwości proxy i udane przeglądanie TCP nie testują tej operacji. Do dozwolonego publicznego testu UDP lista proxy SOCKS5 oferuje adresy-kandydatów, ale asocjację UDP i dostęp do celu każdego kandydata trzeba zweryfikować osobno.
| Operacja | Uwaga dotycząca SOCKS5 UDP udokumentowana przez Qt |
|---|---|
| bind | Może przekroczyć limit czasu |
| Żądanie niezerowego portu lokalnego | Nie gwarantuje, że ten port zostanie użyty |
| Sprawdzenie wyniku | Odczytaj localPort i localAddress, aby uzyskać rzeczywiste informacje |
Przekaźnik dodaje ścieżkę UDP, na której utrata pakietów nadal jest możliwa. Wartości konta proxy używają właściwości user/password obiektu.
Zmiana proxy nie może przenieść połączonego gniazda. Ostrożnie interpretuj też próby z localhost: Qt omija proxy sieciowe dla swoich udokumentowanych adresów localhost w connectToHost, bind lub listen.