In Asio TCP-socket ferbine mei in SOCKS5-ôfharker foltôget ien stap: de TCP-ferbining nei dy ôfharker. It freget de proxy net om him mei de definitive tsjinner te ferbinen. Foar in tastiene test tsjin in iepenbier doel biedt de SOCKS5-proxylist kandidaten foar dat earste TCP-einpunt; de ferbiner moat dochs de útwikseling hjirûnder foltôgje.

In SOCKS5-ferbiner moat dêrnei de protokol-útwikseling útfiere:

  1. Stjoer in groetnis fan ferzje 5 dy't de autentikaasjemetoaden listet dy't de klant stipet.
  2. Lês de keazen metoade en fiert har autentikaasje-útwikseling út wannear't dat nedich is.
  3. Stjoer CONNECT mei it adrestype, it adres en de poarte fan de bestimming yn netwurkbyte-oarder.
  4. Lês it antwurd, kontrolearje de ferzje en de resultaatkoade, en ferbrûk it folsleine bûne adres en de poarte fan fariabele lingte.
  5. Jou de oprjochte stream oan it protokol fan de applikaasje.

In helper mei de namme socks5::async_proxy_connect heart by de SOCKS-ymplemintaasje dy't dy helper leveret. It neamen njonken boost::asio makket it gjin part fan 'e TCP-socketynterface fan Asio.

TCP-lêzingen kinne mar in part fan in antwurd weromjaan. Stel lêzingen gear foar de fereaske bytetallen, kies dêrnei de oerbliuwende lingte út it adrestype-fjild. Nim net oan dat elk tsjinnerantwurd de fêste IPv4-yndieling hat.

Foar HTTPS fiert de TLS-hânskodding nei de bestimming út nei in slagge SOCKS CONNECT, en behâld de SNI en de hostnamfekontrôle fan de bestimming. In slagge proxy-antwurd allinnich autentisearret de webside net.

Hâld annulearring en deadlines oer de hiele ynstelsekwinsje. As de tiid foar it oanmeitsjen fan de TCP-ferbining ferrint, bliuwe de lettere groetnis-, autentikaasje- en CONNECT-útwikselingen oars ûnbeheind.

Relatearre artikelen