Atur Proksi UDP SOCKS5 Qt Sebelum Mengikat Socket
Gunakan setProxy pada QUdpSocket yang ada, lalu baca alamat dan port yang benar-benar terikat alih-alih mengasumsikan port yang diminta dipertahankan.
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
QStringLiteral("proxy.example.net"),
1080);
udpSocket->setProxy(proxy);Terapkan ini pada QUdpSocket aplikasi yang sudah ada sebelum bind atau connect. Server SOCKS harus menerapkan asosiasi UDP; flag kemampuan proksi dan penjelajahan TCP yang berhasil tidak menguji operasi itu. Untuk uji UDP publik yang diizinkan, daftar proksi SOCKS5 menawarkan kandidat alamat, tetapi asosiasi UDP dan akses target setiap kandidat harus diverifikasi secara terpisah.
| Operasi | Pertimbangan UDP SOCKS5 yang didokumentasikan Qt |
|---|---|
| bind | Dapat kehabisan waktu |
| Meminta port lokal bukan nol | Tidak menjamin port itu akan digunakan |
| Periksa hasil | Baca localPort dan localAddress untuk informasi sebenarnya |
Relai menambahkan jalur UDP yang masih memungkinkan kehilangan paket. Nilai akun proksi menggunakan properti user/password objek.
Mengubah proksi tidak dapat memindahkan socket yang terhubung. Tafsirkan juga uji localhost dengan hati-hati: Qt melewati proksi jaringan untuk alamat localhost yang didokumentasikannya di connectToHost, bind, atau listen.