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 u primjeru predstavljaju TCP uslugu aplikacije. Qt najprije dolazi do proxyja, a zatim ga traži da se poveže s tim odredištem. 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 stvarni host 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 na životu dok je veza u upotrebi. Za blokirajući kod umjesto toga upotrijebite Qt-ove dokumentirane metode čekanja s namjerno postavljenim vremenskim ograničenjem.

Za to je potreban Qt Network, a ne GUI zasnovan na widgetima. Ova eksplicitna postavka pripada ovom socketu. Drugi socketi mogu zadržati zadane vrijednosti aplikacije ili odabrati drugi proxy. Da bi ovaj socket bio izravan, postavite njegov tip proxyja na QNetworkProxy::NoProxy prije povezivanja.

Povezani članci