मौजूदा Netty bootstrap/pipeline के लिए जहाँ SOCKS सर्वर को गंतव्य हल करना चाहिए:

bootstrap.resolver(NoopAddressResolverGroup.INSTANCE);

pipeline.addFirst(
    new Socks5ProxyHandler(new InetSocketAddress("127.0.0.1", 1080))
);

bootstrap.connect(
    InetSocketAddress.createUnresolved("example.com", 443)
);

प्रॉक्सी एंडपॉइंट स्थानीय पोर्ट 1080 है; अनसुलझा कनेक्शन लक्ष्य example.com:443 है। दोनों भूमिकाओं के लिए प्रॉक्सी पता न उपयोग करें और हैंडलर के प्राप्त करने से पहले नाम हल न करें। अनुमत सार्वजनिक-प्रॉक्सी मार्ग पर सार्वजनिक लक्ष्यों के लिए, SOCKS5 प्रॉक्सी सूची हैंडलर के प्रॉक्सी एंडपॉइंट के लिए उम्मीदवार देती है।

Socks5ProxyHandler को गंतव्य ट्रैफ़िक का आदान-प्रदान करने वाले हैंडलर से पहले रखें। इसके प्रॉक्सी कनेक्शन future की प्रतीक्षा करें, केवल लिसनर तक पहुँचने वाले चैनल की नहीं। अस्वीकृत विधि या गंतव्य इस सेटअप चरण का हिस्सा है।

HTTPS के लिए, अगली TLS परत गंतव्य का होस्टनाम, आवश्यक सत्यापन और विश्वास उपयोग करती है—SOCKS एंडपॉइंट की पहचान नहीं। तभी HTTP/एप्लिकेशन का आदान-प्रदान शुरू होता है।

यह अंश इवेंट लूप, चैनल प्रकार, TLS/HTTP हैंडलर या सामान्य त्रुटि प्रबंधन नहीं देता। प्रमाणीकरण आवश्यकताओं से मेल खाने वाला SOCKS कंस्ट्रक्टर चुनें; HTTP Basic हैंडलर दूसरा प्रोटोकॉल है।

no-op resolver का उपयोग केवल वहाँ करें जहाँ यह डाउनस्ट्रीम हैंडलर होस्टनाम समाधान का स्वामी है। अन्य कनेक्शनों को स्थानीय खोज की आवश्यकता हो सकती है। विफलता का निदान करते समय resolver आउटपुट, प्रॉक्सी future, TLS और एप्लिकेशन परिणाम अलग रखें।

संबंधित लेख