给个思路 谢谢o(∩_∩)o...哈哈

解决方案 »

  1.   

    sql server 的话建一个用户名命名的临时表,不过这样感觉是不大好.三层就比较好点,可以用session来管理
      

  2.   

    楼上,我就偷懒,使用的sql数据库,用户登录建立用户名命名的全局临时表来控制...
    session
      

  3.   

    用额外的数据表控制
    user_id login_machine登录时先检测是否存在已登录的同名用户,如有,检测是否在线。
    退出时清除表中的数据
      

  4.   

    if 状态=未登录 then
    begin
       状态:=登录;
       MAC地址:=客户端MAC地址;
    end
    else if MAC地址=客户端MAC地址 then
    begin
       状态:=登录;
    end
    else
       showmessage('不能登录');正常退出时清空状态和MAC地址
      

  5.   

    主要问题是处理异常下线的情况,处理方法如下:
        使用MAC地址作为标记,在账号表中增加是否在线的字段和MAC地址字段,在上下线时判断和改变状态值.
        当S端发现有登录请求时,先查一下这个账号状态是否在线,如果在线就与这个账号的MAC地址进行通讯,如果C端有返回值就表示当前的登录是同账号的二次登录,如果无返回值,就说明当前的状态值是异常掉线导致的.立即更正并允许当前的账号登录.
        因此需要先假定好应答内容,当S问C是否在线时C要回答什么.