પ્રોક્સી સાથે કનેક્ટ થયા પછી Asio ને SOCKS5 વિનિમયની જરૂર છે
Asio સોકેટ પર SOCKS5 ને પ્રોટોકોલ સ્થિતિ યંત્ર તરીકે ગણો; સંપૂર્ણ વાંચન, માન્ય કરેલા પ્રતિભાવો અને 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 વિનિમયો મર્યાદા વિના રહે છે.