局域网内, 如何从一台计算机检测到另一台计算机是否在局域网线上? 目的: 想从A机知道B机是否在局域网上正常工作, 如果B机关机/断网/死机时, 
A机就进行替补工作.

解决方案 »

  1.   

    保持A-B的TCP/IP连接,由A发出询问信号,如果B在指定时间内回答了就说明B正常,否则不正常。
      

  2.   

    1 用一个时间控件,每隔一段时间触发一次,在它的触发事件里添加代码。
    2 代码只要判断A,B两机是否连接就可以了,比如
     A 判断本局域网内有没有B (假如说你是A)
     B 象上面老兄说的用TCP/IP连接A-B,最好B为服务器端A为客户端。
     C A PING一下B能否通。
      

  3.   

    如果A机未用防火墙等关闭网络名端口(一般在局网中是不应该关的,关了会造成很多不正常)。
    那么,B机来个取A机的网络名就可以了。
      

  4.   

    取网络名的方法参见:
    http://www.chinadz.com/~wzdz/free/free/delphi/get_net_friend.htm
      

  5.   

    此外,也可以利用程序进行Ping操作,详见:
    http://hanyi.codelphi.com/jiqiao/12.html
      

  6.   

    用PING操作,能通就在网络中。
    只要用timer在事件中PING就可以了,一旦PING不到B机就马上A机工作
      

  7.   

    是否能换个想法。通过Ado,bde去连连相应的数据库,判断出是否在局域网上呢.
      

  8.   

    用ADO去连数据库?好像不好吧?这样也行?不明白