Proxy-prófari setur SendTimeout = 200, kallar Connect og bíður mun lengur en búist var við. Timeout-ið er bundið við aðgerð sem prófarinn hefur ekki náð enn.

Socket.SendTimeout stýrir samstilltum sendingum. Það gefur samstilltri tengingartilraun ekki 200 ms frest. Að bæta svefni fyrir Connect bætir aðeins við annarri töf.

Hættið við aðgerðina sem bíður

Á nútíma .NET-marki sem býður upp á aflýsanlegu ofhleðsluna getur ósamstillt prófun beitt fjárhagsáætlun sinni á uppsetningu tengingarinnar:

using var budget = new CancellationTokenSource(TimeSpan.FromSeconds(2));
using var client = new TcpClient();
await client.ConnectAsync(proxyHost, proxyPort, budget.Token);

Brotinn tilheyrir async-aðferð, þar sem proxy-hýsillinn og -gáttin koma frá kallaranum; opinber frambjóðandi úr proxy-lista getur gefið þessi tvö inntak. Meðhöndlið aflýsingu aðskilið frá socket-villu ef prófarinn greinir frá ástæðum mistaka. Að losa biðlarann kemur einnig í veg fyrir að loknu prófin safni socketum.

Eldri .NET Framework-kóði hefur ekki hverja nútíma ofhleðslu. Notið studda ósamstillta tengingarfyrirkomulag og lokaðu socketinu skýrt þegar þið hættið við tilraunina. Að stöðva eingöngu bið ykkar sannar ekki að undirliggjandi aðgerð hafi stöðvast.

Græna niðurstaðan er enn lítil niðurstaða

Árangursrík TCP-tenging sannar að þessi biðlari náði hlustandi endapunkti. Hún hefur ekki samið um SOCKS, ekki auðkennt sig við HTTP-proxy, ekki opnað CONNECT né fengið æskilegt svar vefsvæðisins.

Gefið þeim síðari stigum sína eigin takmörkuðu meðferð, eða berið viljandi heildarfrest í gegnum þau. Annars getur viðgerði tengingartímamælirinn virkað fullkomlega á meðan prófarinn eyðir annarri mínútu í að bíða eftir proxy-handshake.

Tengdir greinar