C#-এ ইন্টারনেট কানেকশন চেক করার অনেক উপায় আছে। System.Net নেমস্পেস কমন মেথড দেয় ডেটা পাঠাতে/প্রाप्त করতে URI দিয়ে। WebClient বা HttpClient ক্লাস কমন মেথড দেয়। নিচের উদাহরণে OpenRead ব্যবহার করা হয়েছে (রিসোর্স থেকে স্ট্রিম রিটার্ন করে)।
URL https://google.com/generate_204 হিট করে চেক করা হয়—সাকসেস হলে true, ফেইল হলে false। নিচের উদাহরণ লুপে চেক করে।
উদাহরণ
static void Main(string[] args)
{
var keepRetrying = true;
while (keepRetrying)
{
if (IsConnectedToInternet())
{
keepRetrying = false;
System.Console.WriteLine("Connected");
}
else
{
keepRetrying = true;
System.Console.WriteLine("Not Connected");
}
}
}
public static bool IsConnectedToInternet()
{
try
{
using (var client = new WebClient())
using (client.OpenRead("https://google.com/generate_204"))
return true;
}
catch { }
return false;
}
আউটপুট
Connected
সুবিধাজনক প্যাটার্ন (HttpClient + Timeout):
public static async Task<bool> IsConnectedAsync()
{
try
{
using var client = new HttpClient { Timeout = TimeSpan.FromSeconds(5) };
var response = await client.GetAsync("https://google.com/generate_204");
return response.IsSuccessStatusCode;
}
catch { return false; }
}
নোট: generate_204 গুগলের একটি লাইটওয়েট এন্ডপয়েন্ট যা 204 No Content রিটার্ন করে (ব্যান্ডউইডথ কম লাগে)। ফায়ারওয়াল/প্রক্সি ব্লক করলে ফেলস নেগেটিভ দিতে পারে।