Membuka Aliran TCP melalui SOCKS5 dengan Qt
Atur proxy eksplisit QTcpSocket sebelum terhubung ke tujuan, menggunakan Qt Network tanpa kebutuhan GUI.
Qt Network dapat menegosiasikan SOCKS5 secara langsung untuk soket TCP. Dalam aplikasi Qt yang sudah ada, konfigurasikan soket sebelum terhubung:
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
"proxy.example.net",
1080
);
socket.setProxy(proxy);
socket.connectToHost("service.example.net", 12345);
socket adalah QTcpSocket yang sudah ada. Tujuan dan port pada contoh mewakili layanan TCP aplikasi. Qt lebih dulu menjangkau proxy, lalu memintanya terhubung ke tujuan tersebut. Untuk layanan TCP yang dapat dijangkau publik dan mengizinkan perantara publik, daftar proxy SOCKS5 menyediakan kandidat untuk contoh tanpa akun proxy ini. Pastikan kandidat mengizinkan host dan port sebenarnya dari layanan.
Sinyal soket asinkron yang biasa tetap berlaku: tunggu connected() sebelum bertukar data aplikasi, dan tangani errorOccurred(). Jaga objek soket tetap hidup selama koneksi digunakan. Untuk kode yang memblokir, gunakan metode tunggu terdokumentasi Qt dengan batas waktu yang disengaja.
Ini memerlukan Qt Network, bukan GUI berbasis widget. Pengaturan eksplisit ini milik soket tersebut. Soket lain dapat mempertahankan default aplikasinya atau memilih proxy lain. Untuk membuat soket ini langsung, atur jenis proxynya ke QNetworkProxy::NoProxy sebelum terhubung.