Nastavte SOCKS5 UDP proxy v Qt před svázáním socketu
Použijte setProxy na existujícím QUdpSocket a poté přečtěte skutečnou svázanou adresu a port, místo abyste předpokládali, že požadovaný port zůstal zachován.
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
QStringLiteral("proxy.example.net"),
1080);
udpSocket->setProxy(proxy);Použijte to na existující QUdpSocket aplikace před bind nebo connect. Server SOCKS musí implementovat UDP asociaci; příznaky schopností proxy a úspěšné procházení přes TCP tuto operaci netestují. Pro povolený veřejný UDP test nabízí seznam SOCKS5 proxy kandidátní adresy, ale UDP asociaci a přístup k cíli každého kandidáta je třeba ověřit samostatně.
| Operace | Hledisko SOCKS5 UDP dokumentované Qt |
|---|---|
| bind | Může vypršet časový limit |
| Požadavek na nenulový místní port | Nezaručuje, že tento port bude použit |
| Kontrola výsledku | Pro skutečné informace čtěte localPort a localAddress |
Relé přidává UDP cestu, na níž ztráta paketů zůstává možná. Hodnoty účtu proxy používají vlastnosti user/password objektu.
Změna proxy nemůže přesunout připojený socket. Opatrně vykládejte i testy s localhost: Qt obchází síťové proxy u svých dokumentovaných adres localhost v connectToHost, bind nebo listen.