QNetworkProxy proxy(
    QNetworkProxy::Socks5Proxy,
    QStringLiteral("proxy.example.net"),
    1080);
udpSocket->setProxy(proxy);

Застосуйте це до наявного QUdpSocket програми перед bind або connect. Сервер SOCKS має реалізувати UDP-асоціацію; прапорці можливостей проксі та успішний перегляд через TCP не перевіряють цю операцію. Для дозволеного публічного UDP-тесту список SOCKS5-проксі пропонує адреси-кандидати, але UDP-асоціацію та доступ до цілі кожного кандидата треба перевіряти окремо.

ОпераціяОсобливість SOCKS5 UDP, задокументована Qt
bindМоже завершитися за тайм-аутом
Запит ненульового локального портуНе гарантує, що цей порт буде використано
Перевірка результатуЧитайте localPort і localAddress для фактичної інформації

Ретранслятор додає шлях UDP, на якому втрата пакетів усе ще можлива. Значення облікового запису проксі використовують властивості user/password об'єкта.

Зміна проксі не може перемістити підключений сокет. Обережно тлумачте й локальні випробування: Qt обходить мережеві проксі для своїх задокументованих адрес localhost у connectToHost, bind або listen.

Схожі статті