Задайте 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.