Socket.SendTimeout এ প্ৰক্সি সংযোগৰ প্ৰচেষ্টা সীমিত নকৰে
ডাটা পঠোৱাতহে প্ৰযোজ্য টাইমআউট নিৰ্ধাৰণৰ পৰিৱৰ্তে সংযোগ স্থাপনতে প্ৰক্সি পৰ্ট পৰীক্ষা সীমিত কৰক।
এটা প্ৰক্সি পৰীক্ষকে SendTimeout = 200 নিৰ্ধাৰণ কৰে, Connect মাতে, আৰু আশাতকৈ বহুত বেছি সময় অপেক্ষা কৰে। টাইমআউটটো এনে এটা কাৰ্য্যৰ লগত সংযুক্ত যিটো পৰীক্ষকে এতিয়াও লাভ কৰা নাই।
Socket.SendTimeout এ ছিংক্ৰনাছ প্ৰেৰণ নিয়ন্ত্ৰণ কৰে। ই ছিংক্ৰনাছ সংযোগ প্ৰচেষ্টাক 200 ms ৰ সময়সীমা নিদিয়ে। Connect ৰ আগতে টোপনি যোগ কৰিলে কেৱল আন এটা বিলম্ব যোগ হয়।
অপেক্ষা কৰি থকা কাৰ্য্যটো বাতিল কৰক
বাতিলযোগ্য overload প্ৰদান কৰা আধুনিক .NET লক্ষ্যত, এটা async পৰীক্ষাই ইয়াৰ বাজেট সংযোগ স্থাপনত প্ৰয়োগ কৰিব পাৰে:
using var budget = new CancellationTokenSource(TimeSpan.FromSeconds(2));
using var client = new TcpClient();
await client.ConnectAsync(proxyHost, proxyPort, budget.Token);
এই অংশটো async পদ্ধতিৰ ভিতৰত থাকিব লাগে, প্ৰক্সি হোষ্ট আৰু পৰ্ট কল কৰাজনে যোগান ধৰে; প্ৰক্সি তালিকাৰ পৰা এটা ৰাজহুৱা প্ৰাৰ্থীয়ে সেই দুটা ইনপুট যোগান ধৰিব পাৰে। পৰীক্ষকে বিফলতাৰ কাৰণ জনালে বাতিলক socket ত্ৰুটিৰ পৰা পৃথকভাৱে চম্ভালক। ক্লায়েণ্টটো dispose কৰিলে সমাপ্ত পৰীক্ষাবোৰে socket জমা কৰাত বাধা দিয়ে।
পুৰণি .NET Framework ক’ডত সকলো আধুনিক overload নাথাকে। সমৰ্থিত async সংযোগ ব্যৱস্থা ব্যৱহাৰ কৰক আৰু প্ৰচেষ্টা ত্যাগ কৰোঁতে socket স্পষ্টভাৱে বন্ধ কৰক। কেৱল আপোনাৰ অপেক্ষা বন্ধ কৰিলে তলৰ কাৰ্য্য বন্ধ হোৱা প্ৰমাণ নহয়।
সেউজীয়া ফলাফল এতিয়াও সৰু ফলাফল
সফল TCP সংযোগে প্ৰমাণ কৰে যে এই ক্লায়েণ্টে এটা শুনি থকা এণ্ডপইণ্টত উপনীত হৈছে। ই SOCKS আলোচনা কৰা নাই, HTTP প্ৰক্সীত প্ৰমাণীকৰণ কৰা নাই, CONNECT খোলা নাই বা কাঙ্ক্ষিত ৱেবছাইটৰ সঁহাৰি লাভ কৰা নাই।
সেই পিছৰ পৰ্যায়বোৰক নিজৰ সীমিত ব্যৱস্থাপনা দিয়ক, বা ইয়াৰ মাজেৰে এটা ইচ্ছাকৃত সামগ্ৰিক সময়সীমা লৈ যাওক। নহ’লে মেৰামতি কৰা সংযোগ টাইমাৰে নিখুঁতভাৱে কাম কৰিব পাৰে, কিন্তু পৰীক্ষকে প্ৰক্সি handshake ৰ বাবে আৰু এটা মিনিট অপেক্ষা কৰে।