日期:2014-05-19  浏览次数:20899 次

求教网络设备监听的方法
我们单位有几百台交换机,想做个程序实时检测这些交换机是否正常工作!
我的想法是把交换机的Ip列表写到数据库中,然后循环读出来,有多少个ip建立多少个线程,去ping这些ip,通过ping返回的信息判断其是否正常.但我让这些线程不停的ping这些交换机,cpu占用率就一直在100%。
1、请高手指点,像这样的监听除了ping的方式还有其他方法吗?
2、如果没有请看看下面的代码可以怎样让cpu占用率降下来?


while   (dr.Read())
                        {
                                myping   myobject   =   new   myping();
                                myobject.ip   =   dr[ "ManageIP "].ToString();
                                myobject.switchDesc   =   dr[ "switchDesc "].ToString();
                                mythread[i]   =   new   Thread(new   ThreadStart(myobject.ping));
                                mythread[i].Start();
                                i   =   i   +   1;
                        }

  public   class   myping
                {
                        public   string   ip;
                        public   string   switchDesc;
                        public   void   ping()
                        {
                                Process   p   =   new   Process();
                                p.StartInfo.FileName   =   "cmd.exe ";
                                p.StartInfo.UseShellExecute   =   false;
                                p.StartInfo.RedirectStandardInput   =   true;
                                p.StartInfo.RedirectStandardOutput   =   true;
                                p.StartInfo.RedirectStandardError   =   true;
                                p.StartInfo.CreateNoWindow   =   true;
                                p.Start();
                                p.StandardInput.WriteLine( "ping   -n   1   "   + &