د Asio TCP ساکټ د SOCKS5 اورېدونکي سره نښلول یوازې یو ګام بشپړوي: هغه اورېدونکي ته TCP اړیکه. دا له پراکسي څخه نه غواړي چې وروستي سرور سره ونښلي. د اجازه ورکړل شوي عام هدف ازموینې لپاره د SOCKS5 پراکسي لیست هغه لومړني TCP پای ټکي لپاره نوماندان وړاندې کوي؛ نښلونکی باید لاندې تبادله بشپړه کړي.

بیا SOCKS5 نښلونکی باید د پروتوکول تبادله ترسره کړي:

  1. د نسخې 5 سلام واستوئ چې هغه تصدیق کولو میتودونه لیستوي چې کلینټ یې ملاتړ کوي.
  2. ټاکل شوې طریقه ولولئ او کله چې اړتیا وي د هغې تصدیق تبادله ترسره کړئ.
  3. CONNECT د منزل د پت ډول، پت او د شبکې بایټ ترتیب پورټ سره واستوئ.
  4. ځواب ولولئ، نسخه او د پایلې کوډ یې وګورئ، او بشپړ بدلېدونکي اوږدوالي تړلی پت او پورټ وکاروئ.
  5. جوړ شوی جریان د اپلیکیشن پروتوکول ته وسپارئ.

socks5::async_proxy_connect نومېدونکی مرستندوی د هغه SOCKS پلي کولو پورې اړه لري چې دا مرستندوی وړاندې کوي. د boost::asio تر څنګ یې نومول د Asio د TCP ساکټ انټرفیس برخه نه جوړوي.

TCP لوستل ممکن د ځواب یوازې یوه برخه بیرته راولي. د اړینو بایټ شمېرو لپاره لوستل یوځای کړئ، بیا پاتې اوږدوالی د پت ډول له ساحې څخه وټاکئ. داسې مه انګېرئ چې هر سرور ځواب ثابت IPv4 ترتیب لري.

د HTTPS لپاره له بریالي SOCKS CONNECT وروسته د منزل TLS لاس نیول ترسره کړئ، د منزل SNI او د کوربه نوم تصدیق ساتلو سره. یوازې بریالی پراکسي ځواب وېبسایټ تصدیق نه کوي.

په ټول ترتیب کې لغوه کول او مهالوینې وساتئ. که د TCP اړیکې جوړولو وخت پای ته ورسیږي، وروستي سلام، تصدیق او CONNECT تبادلې بې حده پاتې کیږي.

اړوندې مقالې