Qt Network može izravno pregovarati SOCKS5 za TCP socket. U postojećoj Qt aplikaciji konfigurirajte socket prije povezivanja:

QNetworkProxy proxy(
    QNetworkProxy::Socks5Proxy,
    "proxy.example.net",
    1080
);

socket.setProxy(proxy);
socket.connectToHost("service.example.net", 12345);

socket je postojeći QTcpSocket. Odredište i port iz primjera predstavljaju TCP uslugu aplikacije. Qt najprije dolazi do proxyja, a zatim ga traži da se poveže na to odredište. Za javno dostupnu TCP uslugu kod koje je dopušten javni posrednik, popis SOCKS5 proxyja nudi kandidate za ovaj primjer bez proxy računa. Provjerite dopušta li kandidat stvarnog hosta i port usluge.

Uobičajeni asinkroni signali socketa i dalje vrijede: pričekajte connected() prije razmjene podataka aplikacije i obradite errorOccurred(). Držite objekt socketa živim dok je veza u upotrebi. Za blokirajući kôd upotrijebite umjesto toga Qtove dokumentirane metode čekanja s namjernim vremenskim ograničenjem.

To zahtijeva Qt Network, a ne GUI zasnovan na widgetima. Eksplicitna postavka pripada ovom socketu. Drugi sockete mogu zadržati zadane postavke aplikacije ili odabrati drugi proxy. Da bi ovaj socket bio izravan, postavite njegov tip proxyja na QNetworkProxy::NoProxy prije povezivanja.

Povezani članci