Configure el proxy SOCKS5 UDP de Qt antes de enlazar el socket
Use setProxy en el QUdpSocket existente y luego lea la dirección y el puerto realmente enlazados en lugar de suponer que se conservó el puerto solicitado.
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
QStringLiteral("proxy.example.net"),
1080);
udpSocket->setProxy(proxy);Aplique esto al QUdpSocket existente de la aplicación antes de bind o connect. El servidor SOCKS debe implementar la asociación UDP; los indicadores de capacidad del proxy y la navegación TCP correcta no prueban esa operación. Para una prueba UDP pública permitida, la lista de proxies SOCKS5 ofrece direcciones candidatas, pero la asociación UDP y el acceso al destino de cada candidata deben verificarse por separado.
| Operación | Consideración sobre SOCKS5 UDP documentada por Qt |
|---|---|
| bind | Puede agotar el tiempo de espera |
| Solicitar un puerto local distinto de cero | No garantiza que se use ese puerto |
| Inspeccionar el resultado | Lea localPort y localAddress para obtener información real |
El relé añade una ruta UDP en la que la pérdida de paquetes sigue siendo posible. Los valores de la cuenta de proxy usan las propiedades user/password del objeto.
Cambiar el proxy no puede mover un socket conectado. Interprete también con cuidado las pruebas con localhost: Qt omite los proxies de red para sus direcciones localhost documentadas en connectToHost, bind o listen.