Qt Network kan SOCKS5 vir 'n TCP-aansluiting direk onderhandel. In 'n bestaande Qt-program stel jy die aansluiting op voordat daar gekoppel word:

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

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

socket is 'n bestaande QTcpSocket. Die voorbeeldbestemming en -poort verteenwoordig die program se TCP-diens. Qt bereik eers die instaanbediener en vra dit dan om aan daardie bestemming te koppel. Vir 'n publiek bereikbare TCP-diens waar 'n openbare tussenparty toegelaat word, voorsien die SOCKS5-instaanbedienerlys kandidate vir hierdie voorbeeld sonder instaanbediener-rekening. Bevestig dat die kandidaat die diens se werklike gasheer en poort toelaat.

Die normale asinchrone aansluitingseine geld steeds: wag op connected() voordat programdata uitgeruil word, en hanteer errorOccurred(). Hou die aansluitingsobjek lewendig terwyl die verbinding in gebruik is. Vir blokkerende kode gebruik eerder Qt se gedokumenteerde wagmetodes met 'n doelbewuste tydverloop.

Dit vereis Qt Network, nie 'n widget-gebaseerde GUI nie. Die eksplisiete instelling hoort by hierdie aansluiting. Ander aansluitings kan hul programverstekke behou of 'n ander instaanbediener kies. Om hierdie spesifieke aansluiting direk te maak, stel sy instaanbediener-tipe op QNetworkProxy::NoProxy voordat daar gekoppel word.

Verwante artikels