Sísopọ́ Asio TCP socket mọ́ olùgbọ́ SOCKS5 parí ìgbésẹ̀ kan: ìsopọ̀ TCP sí olùgbọ́ yẹn. Kò béèrè lọ́wọ́ proxy láti sopọ̀ mọ́ sáfà ìkẹyìn. Fún ìdánwò àfojúsùn gbogbogbò tí a fọwọ́ sí, àkójọ proxy SOCKS5 ń pèsè àwọn olùdíje fún ipò ìparí TCP àkọ́kọ́ yẹn; olùsopọ̀ náà ṣì gbọ́dọ̀ parí ìpàṣípààrọ̀ tí ó wà nísàlẹ̀.

Lẹ́yìn náà olùsopọ̀ SOCKS5 gbọ́dọ̀ ṣe ìpàṣípààrọ̀ ìlànà náà:

  1. Fi ìkíni ẹ̀yà 5 ránṣẹ́ tí ó ṣe àkójọ àwọn ọ̀nà ìjẹ́rìí tí alábàárà ń gbà.
  2. Ka ọ̀nà tí a yàn, kí o sì ṣe ìpàṣípààrọ̀ ìjẹ́rìí rẹ̀ nígbà tí ó bá yẹ.
  3. Fi CONNECT ránṣẹ́ pẹ̀lú irú àdírẹ́sì ibi-àfojúsùn, àdírẹ́sì àti ibùdó ní ìtòlẹ́sẹẹsẹ byte nẹ́tíwọ́kì.
  4. Ka ìdáhùn náà, ṣàyẹ̀wò ẹ̀yà rẹ̀ àti kóòdù èsì, kí o sì lo àdírẹ́sì àti ibùdó tí a so mọ́ tí ó pé pẹ̀lú gígùn tí ń yí padà.
  5. Fi ṣísàn tí a ti dá lélẹ̀ lé ìlànà ohun-èlò náà lọ́wọ́.

Olùrànlọ́wọ́ tí a ń pè ní socks5::async_proxy_connect jẹ́ ti ìmúṣẹ SOCKS tí ó ń pèsè olùrànlọ́wọ́ yẹn. Pípè é lẹ́gbẹ̀ẹ́ boost::asio kò sọ ọ́ di apá kan ojú-ọ̀nà TCP socket ti Asio.

Kíkà TCP lè dá ìdáhùn padà ní apá kan péré. So àwọn kíkà pọ̀ fún iye byte tí ó yẹ, lẹ́yìn náà yan gígùn tí ó kù láti inú pápá irú àdírẹ́sì. Má ṣe rò pé gbogbo ìdáhùn sáfà ní ìtòlẹ́sẹẹsẹ IPv4 tí ó dúró ṣinṣin.

Fún HTTPS, ṣe ìfọwọ́sowọ́pọ̀ TLS sí ibi-àfojúsùn lẹ́yìn tí SOCKS CONNECT bá ṣe àṣeyọrí, kí o pa SNI àti ìjẹ́rìí orúkọ olùgbàlejò ibi-àfojúsùn mọ́. Ìdáhùn proxy tí ó ṣàṣeyọrí nìkan kò jẹ́rìí ojú-ìwé wẹ́ẹ̀bù.

Pa ìfagilé àti àwọn àkókò ìparí mọ́ jálẹ̀ gbogbo ìtòlẹ́sẹẹsẹ ìṣètò. Tí àkókò ìdásílẹ̀ ìsopọ̀ TCP bá parí, àwọn ìpàṣípààrọ̀ ìkíni, ìjẹ́rìí àti CONNECT tí ó tẹ̀le yóò wà láìsí ààlà.

Àwọn àpilẹ̀kọ tó jọra