Kif tiftaħ fluss TCP permezz ta’ SOCKS5 b’Qt
Issettja l-proxy espliċitu ta’ QTcpSocket qabel ma tikkonnettja mad-destinazzjoni, billi tuża Qt Network mingħajr ħtieġa ta’ GUI.
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.