Qt Network kan forhandle SOCKS5 for ein TCP-socket direkte. I ein eksisterande Qt-applikasjon konfigurerer du socketen før du koplar til:

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

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

socket er ein eksisterande QTcpSocket. Målet og porten i dømet står for TCP-tenesta til applikasjonen. Qt når først proxyen og ber han deretter kopie til målet. For ei offentleg tilgjengeleg TCP-teneste der ein offentleg mellommann er tillaten, gir SOCKS5-proxylista kandidatar for dette dømet utan proxykonto. Stadfest at kandidaten tillèt den faktiske verten og porten til tenesta.

Dei vanlege asynkrone socketsignala gjeld framleis: vent på connected() før du byter applikasjonsdata, og handsam errorOccurred(). Hald socketobjektet levande medan sambandet er i bruk. For blokkerande kode brukar du i staden dei dokumenterte ventemetodane til Qt med eit medvite valt tidsavbrot.

Dette krev Qt Network, ikkje ein GUI basert på widgets. Den eksplisitte innstillinga høyrer til denne socketen. Andre socketar kan halde på standardverdiane til applikasjonen eller velje ein annan proxy. For å gjere nettopp denne socketen direkte set du proxytypen til QNetworkProxy::NoProxy før du koplar til.

Relaterte artiklar