我现在在做一个网管软件,客户想要实时显示,设备的在线状态,我怎么可以判断该设备与其他设备的连接是否成功,也就是在线用户状态的判断,有做过类似项目的大侠指点一下,急用,在线等

解决方案 »

  1.   

    ping 设备Ip,通则表示设备运行正常,这样行么?
      

  2.   

    我就是这么做的,但是我感觉设备太多,现在有七八百台机子要ping多久呀
      

  3.   

    是呀,就是我用ping命令去ping他们可是一下几百台机子下来要好长时间,那你说我应该用怎么实现呢?指点一下,要实时显示
      

  4.   

    我想用多线程,每个线程ping十几个机子,启动多个线程,不过这样的代价就是消耗系统资源,各位有什么更好的方法吗,或者有SNMP经验的同志,给指点一下,项目比较急谢谢
      

  5.   

    同意楼上的楼上的意见,polling吧
      

  6.   

    用tcp/ip(socket) 隔一段时间主机给它们发信息,它们回复,如果超过三次没有收到即可判断设备不在线
    或者多播,退出时候可以捕捉到
      

  7.   

    大家的建议都不错,不过还没有我想要的,我想实现的实时监控每个设备的在线状态,我已经实现不过用的是多线程,我想通过别的比如SNMP协议或者Socket编程获得,各位有经验的可以分享一下,主要是时间问题,因为设备太多,而且实时性要求高
      

  8.   

    还有我使用化为的产品时,在安装期间,他就能检测出本网段有多少设备在线,这是怎么实现的,有知道的大侠分享一下,谢谢分不够可以再加,源码要java的
      

  9.   

    是局域网吧?
    通过HUB 连接的设备会定时与设备发包的(间隔很多),确保设备连通你只要捕获这个包,根据包头就知道是哪个设备发的,在3倍时间内没有受到包,确认设备下线这个有点想nbtstat,捕获通过你机器的包只要将你的机器部署在最高通道,所有包都需要通过你转发,那就可以管理所有机器了或者人家华为做交换机了解更多底层消息吧
      

  10.   

    忘了一点如果通过snmp动态分配IP的话,上路由器取SNMP表,那台机器在线那里都注册着呢不过snmp有个过期时间,也就是说机器下线要超过那个时间才会确认当机,将其IP重新分配。不知能不能满足老兄的实时性
      

  11.   

    楼上这个好像可以实现,那我怎么用Java语言去实现呢,我现在能够发送一个SNMP请求到路由器上,让路由器给我回包,我提取报信息就行了,可是那个oid我设置什么才能获得snmp表呢