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 वर सेट करा.