【发布时间】:2014-03-21 21:18:44
【问题描述】:
我是一名项目工程师,我正在开发一个多路复用器系统,我现在正在编写软件来使用 Visual Basic 2010 控制系统,因为公司不会为专业软件开发人员花钱。主程序运行良好,但我有一个问题要问那些更有经验的人。我的系统中有 10 个以太网设备(海上和海底),我需要监控它们的连接状态。
我要解决的方法是在循环中一遍又一遍地按顺序 ping 每个 IP 地址,如果它已连接/断开连接,我会从 imagelist 控件更改一个pitcurebox 以显示连接状态。这是在一个新线程中完成的,以阻止主界面变得无响应,并且一切正常,但当然更新速度很慢,所以......
我想问你们,有没有更好的方法来显示系统上连接/断开的 IP 地址?我已经搜索了互联网,但我找到的所有内容都不是我想要的,或者我只是在搜索。
感谢您的宝贵时间。
【问题讨论】:
-
如果您没有更多的定义,这很难回答,什么是连接的 IP 地址?它是您从其获得对 ICMP-ping 数据包的响应的 IP 吗?你看过msdn.microsoft.com/en-us/library/… 吗?你所说的“更好的方法”是什么意思,你的意思是一个新的程序吗?还是改用你当前的程序?
-
在你的无限循环中,我还将实现一个 Thread.Sleep(2000); (每次迭代之间有 2 秒的超时时间,这将大大降低程序中资源的使用。另外,您目前如何测试设备是否在线/离线?
-
抱歉,连接的 IP 地址确实是一个 IP,我可以从系统内得到响应,我有一个顶部系统,所有模块都运行 10.0.0.XXX IP,并且 HV 调制解调器传递数据到海底调制解调器和所有具有 10.0.100.XXX IP 的海底地址。我看过 ping 类,但想知道是否有更有效的方法来确定是否可以到达 IP 地址,而不是一个接一个地 ping,这似乎有点笨拙。对不起,我是一个相当新的程序员。
-
我确实使用了当前设置为 5000 毫秒的 sleep.thread。我使用 If - then - else 语句。如果被 ping 的 IP 返回设置为“开”,则其无法访问并将图像设置为“关”。很好,但是当我故意断开设备进行测试时,系统响应缓慢。是否有任何对象或类来监视特定的 IP/端口(它们不会更改)并在检测到更改或我做的太复杂时触发事件。
标签: visual-studio-2010 ip-address