首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • C/S系统中,限制用户数,大家是如何做的呢?
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • net_morning
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-04-28 10:19:38 楼主
    比如,5用户系统,最多可以5个人使用。
    30  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chenzhuo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-28 10:32:041楼 得分:0
    增加一个数据库登陆名称,例如MIS,程序通过这个登陆名进入系统
    通过sp_who统计loginname字段MIS的记录有多少条?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liangpei2008
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-28 10:41:232楼 得分:0
    1.在用户登陆表中加一个当前是否在线的字段
    2.每次登陆统计在线人数, <5 退出
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gjw310
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-28 10:41:253楼 得分:0
    数据库中设置个temp表,放置个用户数字段,每次登陆连接时先读取判断,若大于5则提示用户连接已满,若小于5则加1再回写到数据库
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gjw310
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-28 10:42:124楼 得分:0
    当然读取时要获取独占表的权利
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhaozhen2004
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-28 11:02:165楼 得分:0
    study
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xxmmmx
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-28 11:38:596楼 得分:0
    放在数据库中判断用户连接数,很容易被破解吧?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yagzh2000
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-28 11:44:297楼 得分:0
    用Socket就行了,做个服务端,如果有5人在线就限制
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ziping
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-28 15:08:598楼 得分:0
    C/S的话放到数据库里面做记录还是比较方便,要处理的好那就做服务端了,看你的要求是怎么样了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • pengxuan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-29 10:10:529楼 得分:0
    服务器数据表中记录在线人数
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • SWind
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-29 10:24:4610楼 得分:0
    大部分会用数据库 但是用数据库会存在一个问题 某君网断了 它占了一个用户数 但实际上他并没使用 这样累积下来确实很头疼
    如果有条件 可以用socket 客户端始终要与socket服务器保持连接 断掉服务器上连接数就减1 客户端就要求重新登录
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dgdba
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-29 11:06:5711楼 得分:0
    檢查數據庫服務器SPID更好,這個是死的,破不了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • morninggood
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-29 16:26:5612楼 得分:0
    可以设定用户库里面的用户数,超过5个就报警
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hm616911
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-29 17:21:0013楼 得分:0
    引用 10 楼 SWind 的回复:
    大部分会用数据库 但是用数据库会存在一个问题 某君网断了 它占了一个用户数 但实际上他并没使用 这样累积下来确实很头疼


    这个办法可以用此时时间和上次时间差比较来判断。用户是否非法退出

    不过吧是很准确。因为客户端和服务器距离长的话。数据更新慢的话。就会有误差
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qlonsh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-29 17:33:2614楼 得分:0
    study
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fhb
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-29 22:28:3715楼 得分:0
    如何你的客户是可以联internet的,最好客户端访问你在internet上的server记录登陆信息,这样就知道是否破解或盗版了.

    ---------------------------------------------------
    酷得组件仓库
    http://www.cookcode.net
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • knowledge_Is_Life
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-01 15:55:2116楼 得分:0
    不知,帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • net_morning
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-02 00:07:2717楼 得分:0
    还有其它的实用方法?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xingyongjian
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-05 12:28:4218楼 得分:0
    使用登陆/退出的计数器不就可以了.
    登陆时加一,退出或超时减一.
    拒绝超时客户端的服务!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • flexitime
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-06 18:19:4219楼 得分:0
    如果单纯要通过数据库去实现的话,比较难以做好。问题是:
    1.安全性不好,用户很容易就搞定你了
    2.时效性不好,如果用户不正常退出时,就不能正确处理注销问题
    一般通用的解决方案是使用一个服务端的程序,有很多商业的收费软件都是这样做的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • flexitime
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-06 18:22:5720楼 得分:0
    不过我想我是有方法去搞这件事的,有机会讨论一下
    我的QQ :1966036,加我时请注明delphi fans
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • vfork
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-06 21:27:5921楼 得分:0
    select count(1)
    from  master.dbo.sysprocesses
    where db_name(dbid)='你的数据库名'

    直接把允许连接数写到加密狗里面,但查询出的值>你加密狗里面的值就直接关闭系统。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhuchengchuan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-07 15:44:2022楼 得分:0
    方法很多,可以用服务器的方式来控制,也可通过数据库来控制.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lizheng9564
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-07 17:01:5723楼 得分:0
    可以在開個表或什么的,記錄現在活動的人數呀。進一個加1,退一個減1
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gobiz
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-07 23:56:2724楼 得分:0
    最简单的解放方案,每个客户端配一个加密狗,否则就不能启动!何必把时间浪费在这些问题上呢,再说了现在加密狗的价格又不贵!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • genispan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-08 00:11:3925楼 得分:0
    引用 21 楼 vfork 的回复:
    select count(1)
    from  master.dbo.sysprocesses 
    where db_name(dbid)='你的数据库名'

    直接把允许连接数写到加密狗里面,但查询出的值>你加密狗里面的值就直接关闭系统。

    谁试过此方法啊? 给点方法 我也学习下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Harryfin
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-08 01:00:5126楼 得分:0
    引用 24 楼 gobiz 的回复:
    最简单的解放方案,每个客户端配一个加密狗,否则就不能启动!何必把时间浪费在这些问题上呢,再说了现在加密狗的价格又不贵!

    控制还是有意义的,例如说你给1000个人分配了加密狗,但是系统只能同时并发500人
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zzflover
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-08 08:14:2927楼 得分:0
    引用 24 楼 gobiz 的回复:
    最简单的解放方案,每个客户端配一个加密狗,否则就不能启动!何必把时间浪费在这些问题上呢,再说了现在加密狗的价格又不贵!

    不好,为什么不在服务器加一个狗呢.服务器不启动就不行,省钱省事
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bingyuanaike
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-08 09:43:0228楼 得分:0
    引用 14 楼 qlonsh 的回复:
    study
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zengkun258
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-13 15:01:5429楼 得分:0
    这个必须要考虑到非法退出现象,非法退出的时候并不会去自动更新数据库 。所以在服务器加个狗是个不错的, 也可以用Socket,他是实时的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zh_qy
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-13 16:38:1130楼 得分:0
    看花眼了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • shuihan20e
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-13 17:43:5031楼 得分:0
    系统中添加用户是检查用户数量,超过限制数目,提示,并且不允许添加

    为防止在数据库中添加用户,启动时检查,超过了,提示

    系统同时在线用户时,将在线用户都写到一个表(或数组以及其他方式)里,超过了就提示
    修改 删除 举报 引用 回复