'n .NET-socket benodig 'n SOCKS-handdruk
Verduidelik wat 'n rou .NET TCP-socket moet doen voordat toepassingsgrepe deur 'n SOCKS-proxy kan beweeg.
Om Socket.Connect() na 'n SOCKS-bediener te rig, maak 'n TCP-verbinding na daardie bediener oop. Die volgende grepe moet steeds SOCKS praat. Om jou toepassing se protokol dadelik te stuur, laat die bediener wag vir 'n ander gesprek.
Met SOCKS5 sluit die vestiging van die verbinding die onderhandeling van die metode, enige gekose verifikasie-uitruiling en 'n versoek wat die bestemming noem in. Slegs 'n suksesvolle antwoord maak die pad oop vir die toepassing se grepe. Hierdie fases word in RFC 1928 gedefinieer.
Hou onderhandeling in die verbindingslaag
'n Toepassing met sy eie TCP-protokol kan 'n proxy-bewuste koppelaar gebruik wat 'n gevestigde stroom teruggee. Die res van die toepassing lees en skryf dan deur daardie stroom. 'n Koppelaar moet rekening hou met gedeeltelike lesings, veranderlike-lengte adresse, verifikasie-mislukkings en 'n sperdatum vir die onderhandeling.
'n Handgeskrewe implementering wat een vaste-grootte buffer lees en sukses aanneem, is broos. TCP bewaar nie die grense van die SOCKS-boodskappe nie. Lees die volledige antwoord wat deur sy adrestipe beskryf word voordat jy die toepassingsprotokol begin. 'n .NET 7+ CONNECT-antwoordleser illustreer daardie stap.
As 'n onderhoude biblioteek reeds hierdie verbindingslaag verskaf, kyk na sy ondersteunde SOCKS-weergawes, verifikasiemetodes en teikenraamwerk. 'n Forumskakel van 'n dekade oud is 'n beginpunt vir ondersoek eerder as bewys van huidige versoenbaarheid.
HTTP-kliëntkonfigurasie het 'n aparte omvang
Die proxy-instelling van 'n HTTP-kliënt konfigureer daardie HTTP-kliënt. Dit verander nie elke rou socket in die proses nie. Die Socket API aanvaar 'n netwerk-eindpunt en laat hoër-vlak onderhandeling aan die oproeper oor.
Vir 'n geënkripteerde toepassingsprotokol, voer sy TLS-handdruk uit nadat die proxy-tonnel gevestig is. Valideer die beoogde bestemmingsidentiteit in daardie stadium. Proxy-verifikasie en bestemmingsverifikasie bly apart selfs al gebruik hulle dieselfde onderliggende stroom.