Qt Network lahko neposredno pogaja SOCKS5 za vtičnico TCP. V obstoječi aplikaciji Qt nastavite vtičnico pred povezavo:

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

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

socket je obstoječa QTcpSocket. Cilj in vrata v primeru predstavljata storitev TCP aplikacije. Qt najprej doseže proxy, nato pa ga prosi, naj se poveže s tem ciljem. Za javno dostopno storitev TCP, kjer je dovoljen javni posrednik, seznam proxyjev SOCKS5 ponuja kandidate za ta primer brez proxy računa. Preverite, ali kandidat dovoljuje dejanski gostitelj in vrata storitve.

Običajni asinhroni signali vtičnice še vedno veljajo: počakajte na connected() pred izmenjavo podatkov aplikacije in obravnavajte errorOccurred(). Ohranite objekt vtičnice živ, dokler je povezava v uporabi. Za blokirno kodo namesto tega uporabite dokumentirane metode čakanja Qt z namerno določenim časovnim limitom.

To zahteva Qt Network, ne GUI na osnovi gradnikov. Ta izrecna nastavitev pripada tej vtičnici. Druge vtičnice lahko obdržijo privzete vrednosti aplikacije ali izberejo drug proxy. Da bo ta vtičnica neposredna, pred povezavo nastavite njen tip proxyja na QNetworkProxy::NoProxy.

Sorodni članki