Наладзьце 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.