非正常退出
做了一个登陆窗体 同一个账号 只能同时登陆一台电脑,在数据库用了一个sfzx(0为离线,1为在线)的字段控制。但是,遇到电脑停电的情况下非正常退出的情况下,要怎么才能将sfzx字段改为0???
------解决方案--------------------用心跳包的方式,比如客户端每隔1分钟向服务端发送心跳,服务器记录最后心跳包的时间。服务端判断最后心跳包的时间,如果最后心跳包的时间是2分钟或者3分钟之前的,就可以认为该客户端下线了
------解决方案--------------------
心跳检测
------解决方案--------------------
哪有什么2000个端口?处理2000用户,用一个端口就足以了。
------解决方案--------------------存你的ip进去,可以定时往里存,或定时检测下
------解决方案--------------------去问下 马化腾 QQ是怎么搞的···
不过我觉得 用数据库记录这种是非常不可行的···
其实可以这样: 在服务端也启动了一个监听服务···客户端登录成功后就和服务端一起保持心跳,如果心跳失败 那就用服务端的程序去更新数据库,说明 下线
------解决方案--------------------规定时间刷新帐号在线和IP应该可以的,如果不能通就重置为0,账户需要程序登录。