Qt Network pode negociar SOCKS5 directamente para un socket TCP. Nunha aplicación Qt existente, configure o socket antes de conectar:

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

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

socket é un QTcpSocket existente. O destino e o porto do exemplo representan o servizo TCP da aplicación. Qt chega primeiro ao proxy e despois pídelle que se conecte a ese destino. Para un servizo TCP accesible publicamente onde se permite un intermediario público, a lista de proxies SOCKS5 ofrece candidatos para este exemplo sen conta de proxy. Confirme que o candidato permite o host e o porto reais do servizo.

Os sinais asíncronos habituais do socket seguen aplicándose: espere connected() antes de intercambiar datos da aplicación e xestione errorOccurred(). Manteña vivo o obxecto socket mentres a conexión estea en uso. Para código bloqueante, use no seu lugar os métodos de espera documentados de Qt cun tempo de espera deliberado.

Isto require Qt Network, non unha GUI baseada en widgets. A configuración explícita pertence a este socket. Outros sockets poden conservar os valores predeterminados da aplicación ou escoller outro proxy. Para facer este socket directo, estableza o seu tipo de proxy en QNetworkProxy::NoProxy antes de conectar.

Artigos relacionados