TCP-folyam megnyitása SOCKS5-ön keresztül Qt-vel
Állítsa be a QTcpSocket explicit proxyját a célhoz való csatlakozás előtt, Qt Network használatával GUI nélkül.
A Qt Network közvetlenül tud SOCKS5-öt tárgyalni egy TCP-sockethez. Egy meglévő Qt-alkalmazásban a csatlakozás előtt konfigurálja a socketet:
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
"proxy.example.net",
1080
);
socket.setProxy(proxy);
socket.connectToHost("service.example.net", 12345);
socket egy meglévő QTcpSocket. A példa célja és portja az alkalmazás TCP-szolgáltatását jelöli. A Qt először eléri a proxyt, majd megkéri, hogy csatlakozzon ehhez a célhoz. Egy nyilvánosan elérhető TCP-szolgáltatásnál, ahol nyilvános közvetítő engedélyezett, a SOCKS5 proxy lista jelölteket kínál ehhez a proxyfiók nélküli példához. Győződjön meg róla, hogy a jelölt engedélyezi a szolgáltatás tényleges hosztját és portját.
A szokásos aszinkron socket-jelek továbbra is érvényesek: az alkalmazásadatok cseréje előtt várjon a connected()-ra, és kezelje a errorOccurred()-t. Tartsa életben a socket objektumot, amíg a kapcsolat használatban van. Blokkoló kódhoz használja inkább a Qt dokumentált várakozási metódusait szándékos időtúllépéssel.
Ehhez Qt Network kell, nem widget-alapú GUI. Az explicit beállítás ehhez a sockethez tartozik. Más socketek megtarthatják az alkalmazás alapértelmezéseit, vagy más proxyt választhatnak. Ahhoz, hogy ez a socket közvetlen legyen, a csatlakozás előtt állítsa a proxy típusát QNetworkProxy::NoProxy-re.