የፕሮክሲ ማረጋገጫ SendTimeout = 200 ያዘጋጃል፣ Connect ይጠራል፣ ከተጠበቀው በጣም ረጅም ጊዜ ይጠብቃል። ጊዜ ገደቡ ማረጋገጫው ገና ያልደረሰበት ሥራ ላይ ተጣብቋል።

Socket.SendTimeout ምስማርት ላይ ያሉ ላኪዎችን ይቆጣጠራል። ለምስማርት ግንኙነት ሙከራ 200 ms ገደብ አይሰጥም። ከConnect በፊት መተኛት ተጨማሪ መዘግየት ብቻ ይጨምራል።

የሚጠብቀውን ሥራ ይሰርዙ

ሰርዝ የሚችለውን overload በሚያቀርብ ዘመናዊ .NET ላይ፣ አሲንክሮን ምርመራ በጀቱን በግንኙነት መጀመሪያ ላይ ማዋል ይችላል፦

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

ክፍሉ async ዘዴ ውስጥ መሆን አለበት፣ የፕሮክሲ አስተናጋጅና ፖርት በጠሪው ይሰጣሉ፤ ከፕሮክሲ ዝርዝር የተገኘ ሕዝባዊ እጩ እነዚህን ሁለት ግብዓቶች ሊያቀርብ ይችላል። ማረጋገጫው የውድቀት ምክንያቶችን ከመዘረዘሩ በፊት ስረዛን ከsocket ስህተት ለዩ። ደንበኛውን ማጥፋት የተጠናቀቁ ምርመራዎች socket እንዳይከማቹ ይጠብቃል።

የቆየ .NET Framework ኮድ ሁሉንም ዘመናዊ overload የለውም። የሚደገፍ አሲንክሮን ግንኙነት አዘጋጅተው ሙከራውን ሲተዉ socket በግልጽ ይዝጉ። ጥበቃዎን ብቻ ማቆም መሠረታዊው ሥራ መቆሙን አያረጋግጥም።

አረንጓዴው ውጤት አሁንም ትንሽ ውጤት ነው

የተሳካ TCP ግንኙነት ይህ ደንበኛ ወደ ሚያዳምጥ መጨረሻ መድረሱን ያረጋግጣል። SOCKS አልተደራደረም፣ ለHTTP ፕሮክሲ አልተረጋገጠም፣ CONNECT አልተከፈተም ወይም የሚፈለገው የድረ-ገጽ ምላሽ አልተቀበለም።

እነዚያ በኋላ ደረጃዎች የራሳቸው የተገደበ አያያዝ ይስጡ፣ ወይም ሆን ተብሎ የተዘጋጀ አጠቃላይ የጊዜ ገደብ በእነሱ በኩል ያስተላልፉ። አለበለዚያ የተስተካከለው የግንኙነት ቆጣሪ በትክክል ሊሠራ ይችላል፣ ማረጋገጫው ግን ለፕሮክሲ ማጠቃለያ ሌላ ደቂቃ ይጠብቃል።

ተዛማጅ ጽሑፎች