سلام همراهان جان
من چند مدل چک کردن وضعیت اینترنت دارم ولی ماشالله هر کدوم ۳ ثانیه طول میکشن تا چک کنن
یکیش پینگ میده یکیش هم سایت گوگل یه هر سایتی رو چک میکنه که ببینه دیتا میگیره یا نه
این خیلی بد و افتضاحه
راهی هست که سریع بشه بررسیش کرد؟
سلام همراهان جان
من چند مدل چک کردن وضعیت اینترنت دارم ولی ماشالله هر کدوم ۳ ثانیه طول میکشن تا چک کنن
یکیش پینگ میده یکیش هم سایت گوگل یه هر سایتی رو چک میکنه که ببینه دیتا میگیره یا نه
این خیلی بد و افتضاحه
راهی هست که سریع بشه بررسیش کرد؟
شما نهایت مجبورید یکی از این راهها رو امتحان کنید یا پینگ سایت معروف مثلا گوگل ، یا خواندن اطلاعات یا ... به هرحال یه ترافیکی باید رد و بدل بشه که بسته به سرعت اینترنت کمی طول میکشه مثلا من با این کد حدود یک ثانیه جواب می گیرم
public bool CheckForInternetConnection() {
try
{
using (var client = new WebClient())
using (var stream = client.OpenRead("http://www.google.com"))
{
return true;
}
}
catch
{
return false;
}
}
سلام
این کد رو امتحان کنید فکر کنم نتیجه می گیرید:
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;
}
سپاسگذارم از همتون از اینا استفاده کرده بودم
privatevoid 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...
}
}
privatevoid checkInternet()
{
Ping myPing =newPing();
myPing.PingCompleted+=newPingCompletedEventHandler(myPingCompletedCallback);
try
{
myPing.SendAsync("google.com",3000/*3 secs timeout*/,newbyte[32],newPingOptions(64,true));
}
catch
{
}
}