Đặt proxy SOCKS5 UDP của Qt trước khi liên kết socket
Dùng setProxy trên QUdpSocket hiện có, sau đó đọc địa chỉ và cổng thực sự được liên kết thay vì giả định cổng đã yêu cầu được giữ nguyên.
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
QStringLiteral("proxy.example.net"),
1080);
udpSocket->setProxy(proxy);Áp dụng điều này cho QUdpSocket hiện có của ứng dụng trước khi bind hoặc connect. Máy chủ SOCKS phải triển khai liên kết UDP; cờ khả năng của proxy và duyệt TCP thành công không kiểm tra thao tác đó. Đối với thử nghiệm UDP công khai được phép, danh sách proxy SOCKS5 cung cấp các địa chỉ ứng viên, nhưng liên kết UDP và quyền truy cập mục tiêu của từng ứng viên phải được xác minh riêng.
| Thao tác | Cân nhắc SOCKS5 UDP được Qt ghi lại |
|---|---|
| bind | Có thể hết thời gian |
| Yêu cầu cổng cục bộ khác 0 | Không bảo đảm cổng đó sẽ được dùng |
| Kiểm tra kết quả | Đọc localPort và localAddress để có thông tin thực tế |
Relay thêm một đường UDP mà trên đó việc mất gói vẫn có thể xảy ra. Giá trị tài khoản proxy dùng thuộc tính user/password của đối tượng.
Thay đổi proxy không thể di chuyển socket đã kết nối. Hãy diễn giải cả các thử nghiệm localhost một cách cẩn thận: Qt bỏ qua proxy mạng cho các địa chỉ localhost đã ghi lại của nó trong connectToHost, bind hoặc listen.