Qt Network jista’ jinnegozja SOCKS5 għal socket TCP direttament. F’applikazzjoni Qt eżistenti, ikkonfigura s-socket qabel ma tikkonnettja:

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

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

socket huwa QTcpSocket eżistenti. Id-destinazzjoni u l-port fl-eżempju jirrappreżentaw is-servizz TCP tal-applikazzjoni. Qt l-ewwel jilħaq il-proxy, imbagħad jitolbu jikkonnettja ma’ dik id-destinazzjoni. Għal servizz TCP li jista’ jintlaħaq pubblikament fejn intermedjarju pubbliku huwa permess, il-lista tal-proxy SOCKS5 tforni kandidati għal dan l-eżempju mingħajr kont tal-proxy. Ivverifika li l-kandidat jippermetti l-host u l-port reali tas-servizz.

Is-sinjali asinkroniċi tas-socket tas-soltu għadhom japplikaw: stenna għal connected() qabel ma tbiddel id-dejta tal-applikazzjoni, u immaniġġja errorOccurred(). Żomm l-oġġett tas-socket ħaj waqt li l-konnessjoni tkun qed tintuża. Għal kodi li jimblokka, uża minflok il-metodi ta’ stennija dokumentati ta’ Qt b’timeout maħsub apposta.

Dan jeħtieġ Qt Network, mhux GUI bbażat fuq widgets. Is-setting espliċitu jappartjeni lil dan is-socket. Sockets oħra jistgħu jżommu l-defaults tal-applikazzjoni jew jagħżlu proxy ieħor. Biex dan is-socket ikun dirett, issettja t-tip tal-proxy tiegħu għal QNetworkProxy::NoProxy qabel ma tikkonnettja.

Artikli relatati