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 మార్పిడులు పరిమితి లేకుండా ఉంటాయి.

సంబంధిత వ్యాసాలు