Socket.SendTimeout ba ya iyakance yunƙurin haɗin wakili
Iyakance gwajin tashar wakili a lokacin kafa haɗin maimakon saita lokacin da zai shafi aika bayanai kawai.
Mai duba wakili yana saita SendTimeout = 200, yana kira Connect, kuma yana jira fiye da yadda ake tsammani. Lokacin yana manne da wani aiki wanda mai dubawa bai isa ba tukuna.
Socket.SendTimeout yana sarrafa aikawa na lokaci ɗaya. Ba ya ba yunƙurin haɗi na lokaci ɗaya wa'adin 200 ms. Ƙara bacci kafin Connect yana ƙara wani jinkiri ne kawai.
Soke aikin da yake jira
A kan zamani .NET manufa da ke bayar da overload ɗin da za a iya sokewa, gwaji async na iya amfani da kasafin sa ga kafa haɗin:
using var budget = new CancellationTokenSource(TimeSpan.FromSeconds(2));
using var client = new TcpClient();
await client.ConnectAsync(proxyHost, proxyPort, budget.Token);
Yankin yana cikin hanyar async, tare da mai masaukin wakili da tashar da mai kira ya bayar; ɗan takara na jama'a daga jerin wakilai na iya bayar da waɗannan shigarwar biyu. Sarrafa sokewa dabam da kuskuren socket idan mai duba ya bayar da dalilan gazawa. Zubar da abokin ciniki yana kuma hana gwaje-gwajen da suka kammala tara sockets.
Tsohon lambar .NET Framework ba shi da kowane overload na zamani. Yi amfani da tsarin haɗi na async da ake goyon baya kuma rufe socket a fili lokacin da ka bar yunƙurin. Dakatar da jiranka kawai ba ya tabbatar da cewa wani aiki na ƙasa ya tsaya.
Sakamakon kore har yanzu ƙaramin sakamako ne
Haɗin TCP mai nasara yana tabbatar da cewa wannan abokin ciniki ya isa wurin ƙarshe mai sauraro. Bai tattauna SOCKS ba, bai tabbatar da kansa ga wakilin HTTP ba, bai buɗe CONNECT ba kuma bai karɓi amsar gidan yanar da ake so ba.
Ba wa waɗannan matakai na gaba nasu iyakataccen kulawa, ko ka wuce da gangan cikakken wa'adi ta cikinsu. In ba haka ba mai ƙidayar haɗin da aka gyara zai iya aiki daidai yayin da mai duba ke kashe wani minti yana jiran handshake na wakili.