Настройте SOCKS5 UDP-прокси Qt до привязки сокета
Используйте setProxy для существующего QUdpSocket, затем прочитайте фактически привязанные адрес и порт, а не предполагайте, что запрошенный порт сохранился.
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.