TCP հոսքի բացում SOCKS5-ով Qt-ի միջոցով
Սահմանեք QTcpSocket-ի բացահայտ պրոքսին նախքան նպատակակետին միանալը՝ օգտագործելով Qt Network առանց GUI-ի պահանջի։
Qt Network-ը կարող է ուղղակիորեն բանակցել SOCKS5 TCP սոքեթի համար։ Գոյություն ունեցող Qt հավելվածում կարգավորեք սոքեթը նախքան միանալը՝
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
"proxy.example.net",
1080
);
socket.setProxy(proxy);
socket.connectToHost("service.example.net", 12345);
socket գոյություն ունեցող QTcpSocket է։ Օրինակի նպատակակետը և պորտը ներկայացնում են հավելվածի TCP ծառայությունը։ Qt-ը նախ հասնում է պրոքսիին, ապա խնդրում է այն միանալ այդ նպատակակետին։ Հանրությանը հասանելի TCP ծառայության համար, որտեղ թույլատրվում է հանրային միջնորդ, SOCKS5 պրոքսիների ցանկը առաջարկում է թեկնածուներ այս առանց պրոքսի հաշվի օրինակի համար։ Համոզվեք, որ թեկնածուն թույլ է տալիս ծառայության փաստացի հոսթը և պորտը։
Սովորական ասինխրոն սոքեթի ազդանշանները դեռ գործում են՝ սպասեք connected()-ին նախքան հավելվածի տվյալների փոխանակումը, և մշակեք errorOccurred()-ը։ Պահեք սոքեթի օբյեկտը կենդանի, քանի դեռ կապը օգտագործվում է։ Արգելափակող կոդի համար փոխարենը օգտագործեք Qt-ի փաստաթղթավորված սպասման մեթոդները՝ դիտավորությամբ սահմանված ժամկետով։
Սա պահանջում է Qt Network, ոչ թե widgets-ի վրա հիմնված GUI։ Բացահայտ կարգավորումը պատկանում է այս սոքեթին։ Այլ սոքեթները կարող են պահպանել հավելվածի լռելյայնները կամ ընտրել այլ պրոքսի։ Այս սոքեթը ուղղակի դարձնելու համար նախքան միանալը սահմանեք դրա պրոքսի տեսակը QNetworkProxy::NoProxy։