Asio inahitaji mabadilishano ya SOCKS5 baada ya kuunganisha kwenye proksi
Chukulia SOCKS5 kama mashine ya hali ya itifaki juu ya soketi ya Asio, pamoja na usomaji kamili, majibu yaliyothibitishwa na TLS ya lengwa baada ya CONNECT kufaulu.
Kuunganisha soketi ya TCP ya Asio kwenye msikilizaji wa SOCKS5 hukamilisha hatua moja: muunganisho wa TCP kwenda kwa msikilizaji huyo. Haumwombi proksi kuunganishwa na seva ya mwisho. Kwa jaribio la lengo la umma lililoruhusiwa, orodha ya proksi za SOCKS5 hutoa watahiniwa kwa nukta hiyo ya kwanza ya TCP; kiunganishi bado kinapaswa kukamilisha mabadilishano yaliyo hapa chini.
Kisha kiunganishi cha SOCKS5 kinapaswa kuendesha mabadilishano ya itifaki:
- Tuma salamu ya toleo la 5 inayoorodhesha mbinu za uthibitishaji ambazo mteja anaziauni.
- Soma mbinu iliyochaguliwa na fanya mabadilishano yake ya uthibitishaji inapohitajika.
- Tuma CONNECT pamoja na aina ya anwani ya lengwa, anwani na bandari kwa mpangilio wa baiti za mtandao.
- Soma jibu, angalia toleo lake na msimbo wa matokeo, na utumie anwani iliyofungwa na bandari kamili zenye urefu unaobadilika.
- Kabidhi mtiririko ulioanzishwa kwa itifaki ya programu.
Kisaidizi kinachoitwa socks5::async_proxy_connect ni cha utekelezaji wa SOCKS unaotoa kisaidizi hicho. Kukitaja kando ya boost::asio hakukifanyi kuwa sehemu ya kiolesura cha soketi ya TCP cha Asio.
Usomaji wa TCP unaweza kurudisha sehemu tu ya jibu. Unganisha usomaji kwa idadi ya baiti zinazohitajika, kisha chagua urefu uliobaki kutoka uwanja wa aina ya anwani. Usidhani kila jibu la seva lina mpangilio thabiti wa IPv4.
Kwa HTTPS, fanya makubaliano ya mkono ya TLS ya lengwa baada ya SOCKS CONNECT kufaulu, ukihifadhi SNI na uthibitishaji wa jina la mwenyeji wa lengwa. Jibu la proksi lililofaulu pekee haliidhinishi tovuti.
Dumisha ughairi na makataa katika mfululizo wote wa usanidi. Ikiwa muda wa kuanzisha muunganisho wa TCP utaisha, mabadilishano ya salamu, uthibitishaji na CONNECT yanayofuata yatabaki bila kikomo.