PDA

View Full Version : بررسی اتصال اینترنت



omid_student
سه شنبه 26 خرداد 1394, 11:56 صبح
سلام همراهان جان
من چند مدل چک کردن وضعیت اینترنت دارم ولی ماشالله هر کدوم ۳ ثانیه طول میکشن تا چک کنن
یکیش پینگ میده یکیش هم سایت گوگل یه هر سایتی رو چک میکنه که ببینه دیتا میگیره یا نه
این خیلی بد و افتضاحه
راهی هست که سریع بشه بررسیش کرد؟

محمد رضا فاتحی
سه شنبه 26 خرداد 1394, 12:36 عصر
شما نهایت مجبورید یکی از این راهها رو امتحان کنید یا پینگ سایت معروف مثلا گوگل ، یا خواندن اطلاعات یا ... به هرحال یه ترافیکی باید رد و بدل بشه که بسته به سرعت اینترنت کمی طول میکشه مثلا من با این کد حدود یک ثانیه جواب می گیرم
public bool CheckForInternetConnection() {
try
{
using (var client = new WebClient())
using (var stream = client.OpenRead("http://www.google.com"))
{
return true;
}
}
catch
{
return false;
}
}

mohammad jamalian
سه شنبه 26 خرداد 1394, 12:49 عصر
سلام
این کد رو امتحان کنید فکر کنم نتیجه می گیرید:


using System.Runtime.InteropServices;
[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState(out int Description, int ReservedValue);
//Creating a function that uses the API function...
bool IsConnectedToInternet()
{
bool a;
int Desc;
a=InternetGetConnectedState(out Desc, 0);
return a;
}

omid_student
چهارشنبه 27 خرداد 1394, 09:38 صبح
سپاسگذارم از همتون از اینا استفاده کرده بودم

hosseinbarnamenevis
چهارشنبه 27 خرداد 1394, 11:19 صبح
private void myPingCompletedCallback(object sender, PingCompletedEventArgs e)
{
if (e.Cancelled)
return;

if (e.Error != null)
return;

if (e.Reply.Status == IPStatus.Success)
{
//ok connected to internet, do something...
}
}

private void checkInternet()
{
Ping myPing = new Ping();
myPing.PingCompleted += new PingCompletedEventHandler(myPingCompletedCallback) ;
try
{
myPing.SendAsync("google.com", 3000 /*3 secs timeout*/, new byte[32], new PingOptions(64, true));
}
catch
{
}
}