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.

Artikli relatati