Socket.SendTimeout ma jillimitax tentattiv ta' konnessjoni proxy
Illimita t-test tal-port tal-proxy waqt it-twaqqif tal-konnessjoni minflok issettja timeout li japplika biss għall-ibgħat tad-data.
Verifikatur tal-proxy jissettja SendTimeout = 200, isejjaħ Connect u jistenna ħafna aktar milli mistenni. It-timeout huwa marbut ma' operazzjoni li l-verifikatur għadu ma wasalx għaliha.
Socket.SendTimeout jikkontrolla l-ibgħat sinkroniku. Ma jagħtix tentattiv ta' konnessjoni sinkroniku skadenza ta' 200 ms. Iż-żieda ta' reqda qabel Connect iżżid biss dewmien ieħor.
Ikkanċella l-operazzjoni li qed tistenna
Fuq mira .NET moderna li toffri l-overload li jista' jiġi kkanċellat, test asinkroniku jista' japplika l-baġit tiegħu għat-twaqqif tal-konnessjoni:
using var budget = new CancellationTokenSource(TimeSpan.FromSeconds(2));
using var client = new TcpClient();
await client.ConnectAsync(proxyHost, proxyPort, budget.Token);
Il-framment jappartjeni għal metodu async, bil-host u l-port tal-proxy pprovduti mis-sejjieħ; kandidat pubbliku minn lista ta' proxies jista' jipprovdi dawk iż-żewġ inputs. Ittratta l-kanċellazzjoni separatament minn żball tas-socket jekk il-verifikatur jirrapporta raġunijiet ta' falliment. Ir-rilaxx tal-klijent iżomm ukoll lit-testijiet mitmuma milli jakkumulaw sockets.
Kodiċi .NET Framework eqdem m'għandux kull overload modern. Uża arranġament ta' konnessjoni asinkroniku appoġġjat u agħlaq is-socket b'mod espliċitu meta tabbanduna t-tentattiv. Li twaqqaf biss l-istennija tiegħek ma jipprovax li operazzjoni sottostanti waqfet.
Ir-riżultat aħdar għadu riżultat żgħir
Konnessjoni TCP b'suċċess tipprova li dan il-klijent wasal għal punt tat-tmiem li qed jisma'. Ma nnegozjatx SOCKS, ma awtentikatx ma' proxy HTTP, ma fetħetx CONNECT u lanqas irċeviet ir-risposta mixtieqa tal-websajt.
Agħti lil dawk il-fażijiet ta' wara l-immaniġġjar limitat tagħhom stess, jew għaddi minnhom skadenza globali intenzjonata. Inkella t-timer tal-konnessjoni msewwija jista' jaħdem perfettament waqt li l-verifikatur iqatta' minuta oħra jistenna handshake tal-proxy.