Qt Network pot negociar SOCKS5 directament per a un sòcol TCP. En una aplicació Qt existent, configureu el sòcol abans de connectar:

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

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

socket és un QTcpSocket existent. La destinació i el port de l'exemple representen el servei TCP de l'aplicació. Qt arriba primer al proxy i després li demana que es connecti a aquesta destinació. Per a un servei TCP accessible públicament on es permet un intermediari públic, la llista de proxys SOCKS5 ofereix candidats per a aquest exemple sense compte de proxy. Comproveu que el candidat permeti l'amfitrió i el port reals del servei.

Els senyals asíncrons habituals del sòcol continuen aplicant-se: espereu connected() abans d'intercanviar dades de l'aplicació i gestioneu errorOccurred(). Mantingueu viu l'objecte del sòcol mentre la connexió estigui en ús. Per a codi bloquejant, feu servir els mètodes d'espera documentats de Qt amb un temps d'espera deliberat.

Això requereix Qt Network, no una interfície gràfica basada en widgets. La configuració explícita pertany a aquest sòcol. Altres sòcols poden conservar els valors predeterminats de l'aplicació o triar un altre proxy. Per fer aquest sòcol directe, establiu el seu tipus de proxy a QNetworkProxy::NoProxy abans de connectar.

Articles relacionats