Agor ffrwd TCP trwy SOCKS5 gyda Qt
Gosodwch proxy penodol QTcpSocket cyn cysylltu â'r cyrchfan, gan ddefnyddio Qt Network heb fod angen GUI.
Gall Qt Network drafod SOCKS5 ar gyfer soced TCP yn uniongyrchol. Mewn cymhwysiad Qt sy'n bodoli, ffurfweddwch y soced cyn cysylltu:
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
"proxy.example.net",
1080
);
socket.setProxy(proxy);
socket.connectToHost("service.example.net", 12345);
socket yw QTcpSocket sy'n bodoli. Mae cyrchfan a phorth yr enghraifft yn cynrychioli gwasanaeth TCP y cymhwysiad. Mae Qt yn cyrraedd y proxy yn gyntaf, yna'n gofyn iddo gysylltu â'r gyrchfan honno. Ar gyfer gwasanaeth TCP y gellir ei gyrraedd yn gyhoeddus lle caniateir cyfryngwr cyhoeddus, mae'r rhestr proxy SOCKS5 yn darparu ymgeiswyr ar gyfer yr enghraifft hon heb gyfrif proxy. Cadarnhewch fod yr ymgeisydd yn caniatáu gwesteiwr a phorth gwirioneddol y gwasanaeth.
Mae'r signalau soced async arferol yn dal i fod yn berthnasol: arhoswch am connected() cyn cyfnewid data'r cymhwysiad, a thriniwch errorOccurred(). Cadwch y gwrthrych soced yn fyw tra bod y cysylltiad yn cael ei ddefnyddio. Ar gyfer cod blocio, defnyddiwch ddulliau aros dogfennedig Qt gydag amserlen fwriadol yn lle hynny.
Mae hyn yn gofyn am Qt Network, nid GUI sy'n seiliedig ar widgets. Mae'r gosodiad penodol yn perthyn i'r soced hwn. Gall socedi eraill gadw rhagosodiadau eu cymhwysiad neu ddewis proxy arall. I wneud y soced penodol hwn yn uniongyrchol, gosodwch ei fath proxy i QNetworkProxy::NoProxy cyn cysylltu.