Socket .NET nílò ìfọwọ́sowọ́pọ̀ SOCKS
Ṣàlàyé ohun tí socket TCP .NET àìdá gbọdọ̀ ṣe kí àwọn byte ohun èlò lè gba proxy SOCKS kọjá.
Títọ́ Socket.Connect() sí server SOCKS yóò ṣí ìsopọ̀ TCP sí server yẹn. Àwọn byte tó kàn ṣì gbọdọ̀ sọ SOCKS. Bí o bá fi protocol ohun èlò rẹ ránṣẹ́ lẹ́sẹ̀kẹsẹ̀, server yóò máa dúró de ìjíròrò mìíràn.
Pẹ̀lú SOCKS5, ìdásílẹ̀ ìsopọ̀ ní ìjíròrò ọ̀nà, ìpààrọ̀ ìjẹ́rìí tí a yàn bí ó bá wà, àti ìbéèrè tí ń dárúkọ ibi tí a ń lọ. Ìdáhùn tí ó ṣàṣeyọrí nìkan ni ó ṣí ọ̀nà fún àwọn byte ohun èlò. Àwọn ìpele wọ̀nyí wà nínú RFC 1928.
Pa ìjíròrò mọ́ ní ìpele ìsopọ̀
Ohun èlò tí ó ní protocol TCP tirẹ̀ lè lo connector tí ó mọ proxy tí yóò sì dá stream tí a ti dá padà. Ìyókù ohun èlò yóò kà àti kọ nípasẹ̀ stream yẹn. Connector gbọdọ̀ ka àwọn ìkàwé apá kan, àwọn àdírẹ́sì tí gígùn wọn ń yí padà, ìkùnà ìjẹ́rìí, àti àkókò ìparí fún ìjíròrò náà.
Ìmúṣẹ tí a fi ọwọ́ kọ tí ó kà buffer kan tí ìtóbi rẹ̀ dúró ṣinṣin tí ó sì rò pé ó ṣàṣeyọrí máa ń ṣẹ̀gẹ̀. TCP kò pa àwọn ààlà àwọn ìfiránṣẹ́ SOCKS mọ́. Ka ìdáhùn kíkún tí irú àdírẹ́sì rẹ̀ ṣàlàyé kí o tó bẹ̀rẹ̀ protocol ohun èlò. Olùkà ìdáhùn CONNECT fún .NET 7+ fi ìpele yẹn hàn.
Bí library tí a ń tọ́jú bá ti ń pèsè ìpele ìsopọ̀ yìí, ṣàyẹ̀wò àwọn ẹ̀dà SOCKS tí ó ń ṣe àtìlẹ́yìn fún, àwọn ọ̀nà ìjẹ́rìí, àti framework ibi-afẹ́. Ọ̀nà àsopọ̀ forum tí ó jẹ́ ọdún mẹ́wàá jẹ́ ibẹ̀rẹ̀ ìwádìí, kì í ṣe ẹ̀rí ìbámu lónìí.
Ìṣètò HTTP client ní ibùdó ọ̀tọ̀
Ìṣètò proxy HTTP client ń ṣètò HTTP client yẹn. Kò yí gbogbo socket àìdá tí ó wà nínú ìlànà padà. Socket API gba ibi ìparí nẹ́tíwọ́kì tí ó sì fi ìjíròrò ìpele gíga sí ọwọ́ ẹni tí ń pè é.
Fún protocol ohun èlò tí a ti fi àmì sí, ṣe TLS handshake rẹ̀ lẹ́yìn tí a bá ti dá tunnel proxy. Ṣàyẹ̀wò ìdánimọ̀ ibi tí a ń lọ ní ìpele yẹn. Ìjẹ́rìí proxy àti ìjẹ́rìí ibi-afẹ́sẹ̀ yàtọ̀ síra bí ó tilẹ̀ jẹ́ pé wọ́n ń lo stream ìsàlẹ̀ kan náà.