Socket.SendTimeout ma xaddido isku dayga isku xirka proxy
Xaddid baaritaanka dekedda proxy marka la sameynayo isku xirka halkii aad dhigi lahayd waqti-goosad uun khusaysa dirista xogta.
Baare proxy wuxuu dhigaa SendTimeout = 200, wuxuu wacaa Connect wuuna sugaa wakhti aad uga dheer inta la filayay. Waqtiga-goosadku wuxuu ku xiran yahay hawl uusan baaruhu weli gaarin.
Socket.SendTimeout wuxuu maamulaa diris synchronous ah. Ma siiyo isku day isku xir synchroon ah waqti-goosad 200 ms ah. Hurdo ka hor Connect waxay uun ku daraysaa dib u dhac kale.
Jooji hawsha sugaysa
Bartilmaameed .NET casri ah oo bixiya overload la joojin karo, baaritaan async ah wuxuu miisaaniyadiisa ku dabaqi karaa sameynta isku xirka:
using var budget = new CancellationTokenSource(TimeSpan.FromSeconds(2));
using var client = new TcpClient();
await client.ConnectAsync(proxyHost, proxyPort, budget.Token);
Qaybta waxay ka tirsan tahay hab async, iyada oo host-ka iyo dekedda proxy ay bixiyaan wacaha; musharax dadweynaha ah oo ka yimid liiska proxy ayaa bixin kara labadaas gelin. U qaado joojinta si gooni ah khalad socket haddii baaruhu soo sheego sababaha guuldarrada. In la tirtiro macmiilka waxay sidoo kale ka hortagtaa baaritaannada dhammaaday inay uruuriyaan sockets.
Koodhka .NET Framework ee hore ma laha dhammaan overload-yada casriga ah. Isticmaal hab isku xir async ah oo la taageeray oo si cad u xir socket-ka marka aad ka tagto isku dayga. Kaliya joojinta sugitaankaaga ma caddeyso in hawl hoose ay joogsatay.
Natiijada cagaaran wali waa natiijo yar
Isku xir TCP ah oo guulaystay wuxuu caddeeyaa in macmiilkan uu gaaray barta dhammaadka ee dhagaysanaysa. Ma wada hadlin SOCKS, kama aysan xaqiijin proxy HTTP, ma furin CONNECT mana helin jawaabta websaydhka la rabo.
Siin tallaabooyinkaas dambe maamul xaddidan oo u gaar ah, ama ku mar waqti-goosad guud oo ula kac ah. Haddii kale timer-ka isku xirka ee la hagaajiyay wuu si fiican u shaqayn karaa iyada oo baaruhu ku qaadanayo daqiiqad kale sugitaanka handshake proxy.