Ange Qts SOCKS5 UDP-proxy innan socketen binds
Använd setProxy på den befintliga QUdpSocket och läs sedan den faktiskt bundna adressen och porten i stället för att anta att den begärda porten behölls.
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
QStringLiteral("proxy.example.net"),
1080);
udpSocket->setProxy(proxy);Tillämpa detta på programmets befintliga QUdpSocket före bind eller connect. SOCKS-servern måste implementera UDP-association; proxyns kapacitetsflaggor och lyckad TCP-bläddring testar inte den åtgärden. För ett tillåtet offentligt UDP-test erbjuder SOCKS5-proxylistan adresskandidater, men varje kandidats UDP-association och måltillgång måste verifieras separat.
| Åtgärd | SOCKS5 UDP-hänsyn dokumenterad av Qt |
|---|---|
| bind | Kan nå timeout |
| Begär en lokal port som inte är noll | Garanterar inte att den porten används |
| Granska resultatet | Läs localPort och localAddress för faktisk information |
Reläet lägger till en UDP-väg där paketförlust fortfarande är möjlig. Proxykontovärden använder objektets user/password-egenskaper.
Att ändra proxyn kan inte flytta en ansluten socket. Tolka även localhost-försök försiktigt: Qt kringgår nätverksproxies för sina dokumenterade localhost-adresser i connectToHost, bind eller listen.