TCP-virran avaaminen SOCKS5:n kautta Qt:lla
Aseta QTcpSocketin eksplisiittinen välityspalvelin ennen kohteeseen yhdistämistä, Qt Networkillä ilman GUI-vaatimusta.
Qt Network voi neuvotella SOCKS5:n suoraan TCP-socketille. Olemassa olevassa Qt-sovelluksessa socket määritetään ennen yhdistämistä:
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
"proxy.example.net",
1080
);
socket.setProxy(proxy);
socket.connectToHost("service.example.net", 12345);
socket on olemassa oleva QTcpSocket. Esimerkin kohde ja portti edustavat sovelluksen TCP-palvelua. Qt tavoittaa ensin välityspalvelimen ja pyytää sitä sitten yhdistämään kyseiseen kohteeseen. Julkisesti tavoitettavissa olevalle TCP-palvelulle, jossa julkinen välittäjä sallitaan, SOCKS5-välityspalvelinluettelo tarjoaa ehdokkaita tähän esimerkkiin ilman välityspalvelintiliä. Varmista, että ehdokas sallii palvelun todellisen isäntänimen ja portin.
Tavalliset asynkroniset socket-signaalit pätevät edelleen: odota connected() ennen sovellustietojen vaihtamista ja käsittele errorOccurred(). Pidä socket-olio elossa, kun yhteys on käytössä. Estävälle koodille käytä sen sijaan Qt:n dokumentoituja odotusmenetelmiä tarkoituksellisella aikakatkaisulla.
Tämä edellyttää Qt Networkiä, ei widget-pohjaista GUI:ta. Eksplisiittinen asetus kuuluu tälle socketille. Muut socketit voivat säilyttää sovelluksensa oletukset tai valita toisen välityspalvelimen. Tehdäksesi juuri tästä socketista suoran, aseta sen välityspalvelintyyppi QNetworkProxy::NoProxy ennen yhdistämistä.