Defina o proxy SOCKS5 UDP do Qt antes de vincular o socket
Use setProxy no QUdpSocket existente e depois leia o endereço e a porta realmente vinculados, em vez de supor que a porta solicitada foi mantida.
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
QStringLiteral("proxy.example.net"),
1080);
udpSocket->setProxy(proxy);Aplique isto ao QUdpSocket existente da aplicação antes de bind ou connect. O servidor SOCKS deve implementar a associação UDP; os sinalizadores de capacidade do proxy e a navegação TCP bem-sucedida não testam essa operação. Para um teste UDP público permitido, a lista de proxies SOCKS5 oferece endereços candidatos, mas a associação UDP e o acesso ao destino de cada candidato devem ser verificados separadamente.
| Operação | Consideração sobre SOCKS5 UDP documentada pelo Qt |
|---|---|
| bind | Pode expirar |
| Solicitar uma porta local diferente de zero | Não garante que essa porta será usada |
| Inspecionar o resultado | Leia localPort e localAddress para obter informações reais |
O relay adiciona um caminho UDP no qual a perda de pacotes continua possível. Os valores da conta de proxy usam as propriedades user/password do objeto.
Alterar o proxy não pode mover um socket conectado. Interprete também os testes com localhost com cuidado: o Qt ignora os proxies de rede para seus endereços localhost documentados em connectToHost, bind ou listen.