首页 > 学院 > 开发设计 > 正文

关于使用Timer定时监测网络是否ping通

2019-11-17 02:26:00
字体:
来源:转载
供稿:网友

关于使用Timer定时监测网络是否ping通

项目需要连接某台具体服务端,如果连不上则实时提示,开始使用Timer实时检测

 void timer_Tick(object sender, EventArgs e)        {            Ping pingSender = new Ping();            PingReply reply = pingSender.Send("192.168.1.104", 1000);            if (reply.Status != ipStatus.Success)            {                Message.show("网络异常")            }        }

如果我Timer一直执行的话,会导致该程序的内存一直增长,后来测试发现不是Timer的问题,Timer一直运行不会影响内存,是在Timer中使用Ping导致问题,Ping后估计会有返回值,没有清除

后修改,把Ping pingSender = new Ping() 拿出来,添加一个PingCompleted事件,释放解决问题

 void pingSender_PingCompleted(object sender, PingCompletedEventArgs e)        {            (sender as IDisposable).Dispose();        }

后续问题:

如果再一直ping的过程中,出现某次ping的时候timeout,就会出现错误,做修改,当ping的不成功数大于具体次数时才提出错误。

第二个问题,当有成千上万台电脑都在ping 某个IP时,会不会造成那个IP的电脑宽带阻塞

大牛们,请指导


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表