Qt प्रयोग गरी SOCKS5 मार्फत TCP स्ट्रिम खोल्ने
गन्तव्यमा जडान गर्नुअघि QTcpSocket को स्पष्ट प्रोक्सी सेट गर्नुहोस्, GUI आवश्यक नभई Qt Network प्रयोग गरेर।
Qt Network ले TCP सकेटका लागि SOCKS5 सिधै वार्ता गर्न सक्छ। अवस्थित 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 मा सेट गर्नुहोस्।