مشکل چک کردن اتصال به اینترنت با استفاده از سوکت پروگرمینگ در ویندوز 8
با سلام خدمت همه دوستان
من یه پروژه ای دارم که باید توی اون اتصال به اینترنت رو چک کنم و هر زمان که اینترنت قطع شد، ادامه روند کار متوقف بشه و پیغام مناسب نشون داده بشه. خیلی جستجو کردم و راه حل های زیادی هم تو این سایت و بقیه سایت ها دیدم. اما اغلب روش ها اتصال شبکه رو چک می کنن نه اینترنت رو!!
مثلا استفاده از دستور
My.Computer.Network.IsAvailableیا استفاده از Winnet.dll
یکی از دوستان روش سوکت پروگرمینگ رو پیشنهاد داد که درست هم کار می کنه یعنی من به IP مورد نظرم با پورت 80 کانکت میشم هر وقت که سوکت بسته میشه میفهمم ارتباط قطع شده. حالا مشکل من اینجاست که توی ویندوز XP درست کار می کنه اما توی ویندوز 8 هیچ عکس العملی نداره. فایل توجه اینکه فایروال ویندوز و آنتی ویروس هم غیرفعال هستن.
کسی از دستان راه حلی برای این موضوع داره؟ می تونه منو راهنمایی کنه؟
نقل قول: مشکل چک کردن اتصال به اینترنت با استفاده از سوکت پروگرمینگ در ویندوز 8
سلام
این امکانم هست که از Ping استفاده کنید ، برای مثال این Function رو ببینید
Private Function PingTest(ByVal DestinationAddress As String) As Boolean
Dim PingSender As New Ping
Dim FReturn As Boolean
Try
Dim PingReply As PingReply = PingSender.Send(DestinationAddress, 2000)
If PingReply.Status = IPStatus.Success Then
FReturn = True
Else
FReturn = False
End If
Catch ex As Exception
FReturn = False
End Try
Return FReturn
End Function
آی پی مقصد یا اسم دامنه رو بعنوان پارامتر به تابع بدید و خروجی تابع میتونه مبنای کار شما باشه برای توقف برنامه یا ادامه کار.
البته فضای نام زیر رو باید Import کنید
Imports System.Net.NetworkInformation
موفق باشید
نقل قول: مشکل چک کردن اتصال به اینترنت با استفاده از سوکت پروگرمینگ در ویندوز 8
ممنون آقای مهندس از راهنمایی تون
من این راه حل رو قبلا هم دیده بودم اما به دلیل سرباری که روی برنامه ایجاد می کنه سراغش نرفتم. با این روش من مجبورم از تایمر یا ترد استفاده کنم و هر چند وقت یه بار آدرس رو پینگ کنم. اما توی سوکت پروگرمینگ هر وقت اتصال قطع بشه خودش بلافاصله رویداد Socket_Close رو اجرا می کنه و برنامه متوجه میشه که ارتباط قطع شده. برای همین این روش رو ترجیح دادم.