پراکسی سے منسلک ہونے کے بعد Asio کو SOCKS5 تبادلہ درکار ہے
SOCKS5 کو Asio ساکٹ پر پروٹوکول حالت مشین کی طرح سمجھیں، مکمل پڑھائی، تصدیق شدہ جوابات اور CONNECT کامیاب ہونے کے بعد ہی منزل کا TLS۔
Asio TCP ساکٹ کو SOCKS5 سننے والے سے جوڑنا صرف ایک مرحلہ مکمل کرتا ہے: اُس سننے والے سے TCP رابطہ۔ یہ پراکسی سے آخری سرور سے جڑنے کو نہیں کہتا۔ اجازت یافتہ عوامی ہدف آزمائش کے لیے SOCKS5 پراکسی فہرست اُس پہلے TCP اختتامی نقطے کے لیے امیدوار پیش کرتی ہے؛ جوڑنے والے کو نیچے دیا گیا تبادلہ مکمل کرنا ہی ہوگا۔
پھر SOCKS5 جوڑنے والے کو پروٹوکول تبادلہ چلانا ہوگا:
- ورژن 5 کا سلام بھیجیں جس میں کلائنٹ کے معاون تصدیقی طریقے درج ہوں۔
- منتخب طریقہ پڑھیں اور ضرورت پڑنے پر اُس کا تصدیقی تبادلہ کریں۔
- CONNECT بھیجیں جس کے ساتھ منزل کا پتہ قسم، پتہ اور نیٹ ورک بائٹ ترتیب والا پورٹ ہو۔
- جواب پڑھیں، اُس کا ورژن اور نتیجہ کوڈ جانچیں، اور مکمل بدلتی لمبائی والا بندھا پتہ اور پورٹ استعمال کریں۔
- قائم شدہ اسٹریم ایپلیکیشن کے پروٹوکول کے حوالے کریں۔
socks5::async_proxy_connect نامی معاون اُس SOCKS عمل درآمد کا حصہ ہے جو یہ معاون فراہم کرتا ہے۔ boost::asio کے پہلو میں اُس کا نام لینا اُسے Asio کے TCP ساکٹ انٹرفیس کا حصہ نہیں بناتا۔
TCP پڑھائی جواب کا صرف ایک حصہ واپس دے سکتی ہے۔ مطلوبہ بائٹ تعداد کے لیے پڑھائیاں ترتیب دیں، پھر باقی لمبائی پتہ قسم کے خانے سے چنیں۔ یہ مت سمجھیں کہ ہر سرور جواب کا مقررہ IPv4 ترتیب ہوتا ہے۔
HTTPS کے لیے SOCKS CONNECT کامیاب ہونے کے بعد منزل کا TLS مصافحہ کریں، منزل کا SNI اور میزبان نام کی تصدیق برقرار رکھتے ہوئے۔ صرف کامیاب پراکسی جواب ویب سائٹ کی تصدیق نہیں کرتا۔
پوری سیٹ اپ ترتیب میں منسوخی اور مدتیں برقرار رکھیں۔ اگر TCP رابطہ قائم ہونے کا وقت ختم ہو جائے تو بعد کے سلام، تصدیق اور CONNECT تبادلے بے حد رہ جاتے ہیں۔