Bidh neach-sgrùdaidh neach-ionaid a' suidheachadh SendTimeout = 200, a' gairm Connect agus a' feitheamh fada nas fhaide na bha dùil. Tha an timeout ceangailte ri obair nach eil an neach-sgrùdaidh air ruighinn fhathast.

Bidh Socket.SendTimeout a' stiùireadh chur sioncronach. Chan eil e a' toirt ceann-latha 200 ms do oidhirp ceangail sioncronaich. Chan eil cadal ro Connect a' cur ach dàil eile ris.

Sguir den obair a tha a' feitheamh

Air targaid .NET ùr-nodha a tha a' tabhann an overload a ghabhas a chur am falbh, faodaidh deuchainn async a buidseat a chur an sàs ann an stèidheachadh a' cheangail:

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

Buineas am pìos do dhòigh async, leis an òstair agus am port neach-ionaid air an toirt seachad leis an neach-gairm; faodaidh tagraiche poblach bho liosta neach-ionaid an dà chur-a-steach sin a thoirt seachad. Làimhsich an cur am falbh air leth bho mhearachd socket ma tha an neach-sgrùdaidh ag aithris adhbharan fàillighe. Bidh sgaoileadh a' chliant cuideachd a' cur casg air deuchainnean crìochnaichte bho bhith a' cruinneachadh sockets.

Chan eil a h-uile overload ùr-nodha aig seann chòd .NET Framework. Cleachd rèiteachadh ceangail async le taic agus dùin an socket gu soilleir nuair a thrèiges tu an oidhirp. Chan eil stad air do fheitheamh a-mhàin a' dearbhadh gu bheil obair bhunaiteach air stad.

Is toradh beag fhathast an toradh uaine

Tha ceangal TCP soirbheachail a' dearbhadh gun ruig an cliant seo ceann-uidhe a tha ag èisteachd. Chan eil e air SOCKS a cho-rèiteachadh, air dearbhadh ri neach-ionaid HTTP, air CONNECT fhosgladh no air freagairt na làraich a bha a dhìth fhaighinn.

Thoir làimhseachadh cuingealaichte fhèin dha na h-ìrean nas fhaide sin, no giùlain ceann-latha iomlan a dh'aona ghnothaich troimhe. Mur eil, faodaidh an timer ceangail a chaidh a chàradh obrachadh gu foirfe fhad 's a tha an neach-sgrùdaidh a' caitheamh mionaid eile a' feitheamh ri crathadh-làimhe neach-ionaid.

Artaigilean co-cheangailte