Lig do chomhthéacs Go seisiúin SOCKS a chur ar ceal
Úsáid an comhéadan easpórtáilte ContextDialer le haghaidh cosán SOCKS Go agus idirdhealaigh cealú naisc ó spriocdhátaí ar thrácht feidhmchláir níos déanaí.
func dialViaSOCKS(ctx context.Context, destination string) (net.Conn, error) {
dialer, err := proxy.SOCKS5(
"tcp",
"127.0.0.1:1080",
nil,
&net.Dialer{Timeout: 5 * time.Second},
)
if err != nil {
return nil, err
}
contextDialer, ok := dialer.(proxy.ContextDialer)
if !ok {
return nil, errors.New("SOCKS dialer lacks context support")
}
return contextDialer.DialContext(ctx, "tcp", destination)
}Laistigh de phacáiste líonrú Go atá ann cheana, úsáid na hiompórtálacha context, errors, net, time agus x/net/proxy. Ní roghnaíonn an argóint nil aon dintiúirí SOCKS. Chun ceann scríbe poiblí ar bhealach seachfhreastalaí poiblí ceadaithe, cuireann an liosta seachfhreastalaithe SOCKS5 iarrthóirí ar fáil do chríochphointe an dialer.
Cuireann an dearbhú easpórtáilte proxy.ContextDialer iachall ar fheidhmiúcháin nach dtacaítear leo teip go follasach. Seiceáil an spleáchas atá suiteáilte seach cineál dialer inmheánach a ainmniú nó goroutine bacach a thosú nach féidir leis an nglaoiteoir a bhainistiú.
Rialaíonn an comhthéacs bunú an naisc. Nuair a fhilltear net.Conn, cuir spriocdhátaí léitheoireachta/scríbhneoireachta nó spriocdhátaí iarratais ar leibhéal níos airde i bhfeidhm. Is teorainneacha éagsúla iad amshraith naisc bun-dialer agus buiséad iomlán feidhmchláir.
Le haghaidh comhtháthú iompair HTTP, coinnigh a ghnáth-iompar TLS agus HTTP. Is é an sruth SOCKS comhthéacsach a fhilltear an t-aistriú chuig an iompar, ní freagra ná polasaí saoil do gach beart ina dhiaidh sin.