服务器ADO+DataSetProvider
客户端 SocketConnection+ClientDataSet
在正常退出可以告诉服务器 
服务器可以删除他的登陆信息~~
可是如果客户端是异常退出应该怎么做呢~~~ 谢谢~~~~~~~~~~~~~~~

解决方案 »

  1.   

    定期检查用户是否还在连接 怎么检查  还有 怎么把客户端断开连接~~~ 用 ADO+DataSetProvider快还是 不要中间层的意思~~
    客户端直接连接SQL数据库 
    哪种方式快
      

  2.   

    回复人: kuki84(天道酬勤) ( ) 信誉:57 
    每n秒问一次,客户端们,大伙在不在,要是谁回答我不在了,就把他删了。怎么问啊~~
      

  3.   

    加一个Timer, 每间隔N秒, 向客户端发送一个消息, 客户端收到此消息后返回一个消息, 如果没有返回消息的就不在了
      

  4.   

    加一个Timer, 每间隔N秒, 向客户端发送一个消息, 客户端收到此消息后返回一个消息, 如果没有返回消息的就不在了
    我现在主要的问题是不知道怎么向客户端发信息~~~~~
      

  5.   

    用indy的udpserver向局域网内发广播,接收到消息的向服务器返回一个消息
      

  6.   

    用indy的udpserver向局域网内发广播,接收到消息的向服务器返回一个消息indy 不懂用  还有其它办法吗?
      

  7.   

    客户端异常退出,TCP/IP协议 也会通知服务端的
    用winsock开发 可以将  FD_CLOSE 绑定到窗口的消息上来触发
      {$EXTERNALSYM FD_CLOSE}
      FD_CLOSE        = $20;
      

  8.   

    可以在服务起上建个终端信息链表(TerimalNo终端号,IsNewPacker是否有新报文,IsLink是否连接),终端每隔3分钟给服务器发一次报文;服务器接收到报文后把IsNewPacker设成1,IsLink设成1,更新链表;服务器每隔5分钟监测一次,
       if IsNewPacker=1 then
       begin
         IsNewPacker:=0;
         IsLink:=1; 
       end;
       if IsNewPacker=0 then
       begin
         IsLink:=0;
       end;
      

  9.   

    欢迎大家加入DELPHI程序员群1805366,一起进步!