开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3054|回复: 21
收起左侧

[已解决] 关于如何实现一个用户帐号只能同时打开一个软件的思路

 关闭 [复制链接]
结帖率:85% (69/81)
发表于 2013-8-5 22:07:35 | 显示全部楼层 |阅读模式   广东省茂名市
5精币
我自己有一个VPS的服务器。并有MYSQL数据库
现在我已经实现了用户帐号密码连接上了服务器的数据库验证的功能。。

我现在想实现,如果这个用户登录了软件,服务器会知道这个人登录了。并且一个用户名只能同时登录1个软件。当用户关掉软件的时候。才可以再次登录。

现在有一个问题我搞不懂,如果用户是正常关闭软件,我就知道可以用窗口销毁事件来通知服务器这个用户已经退出。但是,用户如果是非法关闭软件,比如从任务管理器强制退出,或者软件突然崩溃退出等原因,软件是响应不了销毁事件的。


请问:我应该怎么实现用户帐号只能同时登录一个软件。并且可以知道用户已退出呢。求思路。

最佳答案

查看完整内容

客户登录后 修改当前用户的MYSQL 字段, 当前在线字段,1在线 0退出. 也还可以增加一个当前登录IP, 功能你不懂的. 服务器 每隔多少秒与客户 进行 心跳操作, 心跳几次不通 就设置数据字段=0 楼上说的 判断 连接是否断开 差不多.

求助知识:请将问题描述清楚,最好把你有问题的源码打包上传上来,这样更方便大家帮助你。
友情提醒:本版被采纳的主题可在 申请荣誉值 帖子申请荣誉值,获得 3点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
结帖率:100% (5/5)

签到天数: 3 天

发表于 2013-8-5 22:07:36 | 显示全部楼层   重庆市重庆市
客户登录后 修改当前用户的MYSQL 字段, 当前在线字段,1在线 0退出. 也还可以增加一个当前登录IP, 功能你不懂的.

服务器 每隔多少秒与客户 进行 心跳操作, 心跳几次不通 就设置数据字段=0

楼上说的 判断  连接是否断开 差不多.

评分

参与人数 1荣誉 +3 收起 理由
笨潴 + 3 热心帮助他人,荣誉+3,希望继续努力(*^__^*) 嘻嘻

查看全部评分

回复

使用道具 举报

结帖率:75% (3/4)
发表于 2013-8-5 22:10:32 | 显示全部楼层   河南省驻马店市
如果客户端软件关闭以后   是不是跟服务器就断开了连接  
回复

使用道具 举报

结帖率:85% (69/81)

签到天数: 4 天

 楼主| 发表于 2013-8-5 22:17:28 | 显示全部楼层   广东省茂名市
wf54321 发表于 2013-8-5 22:10
如果客户端软件关闭以后   是不是跟服务器就断开了连接

服务器怎么知道客户端关闭呢?
回复

使用道具 举报

结帖率:85% (69/81)

签到天数: 4 天

 楼主| 发表于 2013-8-5 22:32:25 | 显示全部楼层   广东省茂名市
心跳的回忆 发表于 2013-8-5 22:28
客户登录后 修改当前用户的MYSQL 字段, 当前在线字段,1在线 0退出. 也还可以增加一个当前登录IP, 功能你不 ...

你这个方法我也想了,但是我考虑到,如果客户端的软件是非法退出的,就没办法在退出时候向服务器发送“0退出”这个字段了。然后服务器的数据库里还是1.  这样的话,这用户名就卡在那里了。永远都登录不进去。


服务器上只是一个数据库而已,没有服务器版的软件。按你这个方法,是不是还要写一个服务器版的软件,24小时挂在服务器上呢?这样才能实现互发心跳?
回复

使用道具 举报

结帖率:100% (5/5)

签到天数: 3 天

发表于 2013-8-5 22:35:07 | 显示全部楼层   重庆市重庆市
YJF 发表于 2013-8-5 22:32
你这个方法我也想了,但是我考虑到,如果客户端的软件是非法退出的,就没办法在退出时候向服务器发送“0 ...

那你是 怎么登录数据库的呢? 难道客户端 用MYSQL 低权限账户登录 后,直接查询数据库的? 还是通过WEB POST/GET 方式登录?

如果WEB 可以给客户设置COOKIE,

如果直接登录MYSQL 查询的,那就没办法了.
回复

使用道具 举报

结帖率:85% (69/81)

签到天数: 4 天

 楼主| 发表于 2013-8-5 22:40:01 | 显示全部楼层   广东省茂名市
心跳的回忆 发表于 2013-8-5 22:35
那你是 怎么登录数据库的呢? 难道客户端 用MYSQL 低权限账户登录 后,直接查询数据库的? 还是通过WEB POST ...

为了不被爆库,直接用易语言里的Mysql连接命令操作的.
回复

使用道具 举报

结帖率:100% (5/5)

签到天数: 3 天

发表于 2013-8-5 22:42:18 | 显示全部楼层   重庆市重庆市
YJF 发表于 2013-8-5 22:40
为了不被爆库,直接用易语言里的Mysql连接命令操作的.

你还真够放心的,那样一样弄你.

还是写个软件 转发查询数据库吧,谁会把 MYSQL 账户写外面去
而且你见过有多少人是允许把 SQL 之类的数据库允许 外链的? 都不安全的.
回复

使用道具 举报

结帖率:85% (69/81)

签到天数: 4 天

 楼主| 发表于 2013-8-5 22:45:36 | 显示全部楼层   广东省茂名市
心跳的回忆 发表于 2013-8-5 22:42
你还真够放心的,那样一样弄你.

还是写个软件 转发查询数据库吧,谁会把 MYSQL 账户写外面去

没明白你的意思。什么是转发查询数据库。
我现在是直接用启用窗口创建时候就连接上SQL数据库了。
QQ截图20130805224354.jpg
回复

使用道具 举报

结帖率:100% (5/5)

签到天数: 3 天

发表于 2013-8-5 22:48:21 | 显示全部楼层   重庆市重庆市
就是你VPS 上面 专门有个"登录网关"程序(EXE程序,专门用来接受客户连接,并查询数据库使用,也可以用来做其他的),甚至还可以写其他"网关"一起,(其实用不着那么复杂) ,写一个登录网关就够了.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表