تازگی ها به علت نمی دانم چی ناگهان کارت شبکه ای که داتک به آن وصل است از کار می افتد و فقط با release و renew کردن ِ IP درست می شود . البته آنتن نزدیک ما هم ایراد دارد که گفته اند تا فردا قطع است من هم با زور آنتن داتک رو به طرف یک جا دیگه تنظیم کردم که با یک آنتن کار می کند و تا حداکثر پهنای باند می توان download کرد . برای renew کردن روش زیر رو درست کردم .
اول یک batch فایل ساختم و در C قرار دادم که کارهای زیر را انجام می دهد .
ipconfig /release
ipconfig /renew
یک Windows Service هم ساختم که هر 40 ثانیه گوگل را پینگ کند . اگر 3 بار نتیجه نداد batch فایل ِ بالا رو اجرا کند . متد ِ زیر برای صدا زدن فایل است .
Private Sub KeepItAlive() Dim psi As New System.Diagnostics.ProcessStartInfo("c:\restartnetwork.bat") psi.RedirectStandardOutput =
True psi.WindowStyle = ProcessWindowStyle.Hidden
psi.UseShellExecute =
False Dim listFiles As System.Diagnostics.Process listFiles = System.Diagnostics.Process.Start(psi)
Dim myOutput As System.IO.StreamReader = listFiles.StandardOutput listFiles.WaitForExit(2000)
If listFiles.HasExited Then Dim output As String = myOutput.ReadToEnd Debug.WriteLine(output)
End If End Sub خطوط زیر هم در رویداد Elapsed از Timer نوشتم .
Try If My.Computer.Network.Ping("www.google.com") = True Then AddToFile(
"Ping : " & Now.ToString("yyyy/MM/dd HH:mm:ss" & ControlChars.NewLine)) intFailCount = 0
Else intFailCount += 1
AddToFile(
"OUT : Count = " & intFailCount & " @ " & Now.ToString("yyyy/MM/dd HH:mm:ss" & ControlChars.NewLine)) If intFailCount = 3 Then intFailCount = 0
KeepItAlive()
End If End If Catch ex As Exception AddToFile(
"ERROR " & ex.Message & " " & Now.ToString("yyyy/MM/dd HH:mm:ss" & ControlChars.NewLine)) End Try البته این چیزی که اینجا اضافه کردم برای 3 بار timeout شدن رو تست نکردم ! اون چیزی که روی کامپیوتر خودم کار می کنه با اولین timeout می زنه همه چیز رو نابود می کنه ! متن کاملش اینجاست .