Setați proxy-ul SOCKS5 UDP al Qt înainte de legarea socketului
Folosiți setProxy pe QUdpSocket existent, apoi citiți adresa și portul efectiv legate în loc să presupuneți că portul solicitat a fost păstrat.
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
QStringLiteral("proxy.example.net"),
1080);
udpSocket->setProxy(proxy);Aplicați acest lucru pe QUdpSocket existent al aplicației înainte de bind sau connect. Serverul SOCKS trebuie să implementeze asocierea UDP; indicatorii de capabilitate ai proxy-ului și navigarea TCP reușită nu testează acea operațiune. Pentru un test UDP public permis, lista de proxy-uri SOCKS5 oferă adrese candidate, dar asocierea UDP și accesul la țintă ale fiecărui candidat trebuie verificate separat.
| Operațiune | Considerație SOCKS5 UDP documentată de Qt |
|---|---|
| bind | Poate expira |
| Cererea unui port local diferit de zero | Nu garantează că acel port va fi folosit |
| Inspectarea rezultatului | Citiți localPort și localAddress pentru informații reale |
Relay-ul adaugă o cale UDP pe care pierderea pachetelor rămâne posibilă. Valorile contului proxy folosesc proprietățile user/password ale obiectului.
Schimbarea proxy-ului nu poate muta un socket conectat. Interpretați cu atenție și încercările cu localhost: Qt ocolește proxy-urile de rețea pentru adresele localhost documentate în connectToHost, bind sau listen.