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.

Artikuj të ngjashëm