Hapja e një rrjedhe TCP përmes SOCKS5 me Qt
Vendosni përfaqësuesin e qartë të QTcpSocket përpara se të lidheni me destinacionin, duke përdorur Qt Network pa kërkesë për GUI.
Qt Network mund të negociojë drejtpërdrejt SOCKS5 për një socket TCP. Në një aplikacion Qt ekzistues, konfiguroni socketin përpara lidhjes:
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
"proxy.example.net",
1080
);
socket.setProxy(proxy);
socket.connectToHost("service.example.net", 12345);
socket është një QTcpSocket ekzistues. Destinacioni dhe porta në shembull përfaqësojnë shërbimin TCP të aplikacionit. Qt fillimisht arrin përfaqësuesin, pastaj i kërkon të lidhet me atë destinacion. Për një shërbim TCP të arritshëm publikisht, ku lejohet një ndërmjetës publik, lista e përfaqësuesve SOCKS5 ofron kandidatë për këtë shembull pa llogari përfaqësuesi. Konfirmoni që kandidati lejon hostin dhe portën reale të shërbimit.
Sinjalet normale asinkrone të socketit vazhdojnë të vlejnë: prisni connected() përpara se të shkëmbeni të dhëna të aplikacionit dhe trajtoni errorOccurred(). Mbani objektin e socketit gjallë ndërsa lidhja është në përdorim. Për kod bllokues, përdorni në vend të kësaj metodat e pritjes të dokumentuara të Qt me një afat kohor të vendosur qëllimisht.
Kjo kërkon Qt Network, jo një GUI të bazuar në widget. Ky cilësim i qartë i përket këtij socketi. Socketet e tjera mund të mbajnë parazgjedhjet e aplikacionit ose të zgjedhin një përfaqësues tjetër. Për ta bërë këtë socket të drejtpërdrejtë, vendosni tipin e përfaqësuesit të tij në QNetworkProxy::NoProxy përpara lidhjes.