如何控制软件的计算机连接数量

我自逍遥01 2006-03-13 11:17:28
例如:我的软件授权只允许客户的两台计算机使用,应该怎么控制?
谢谢大家!!
...全文
167 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sbks 2006-03-22
  • 打赏
  • 举报
回复
检查master..sysprocesses中的连接到相应的数据库的进程数,在正常时就可以控制连接数了。

这要确保应用程序在异常时(比如突然掉网络时)能够kill掉进程,关于这点,我也想不出什么办法,不知SQL Server自身有异常连接清理的功能。
大师归来 2006-03-14
  • 打赏
  • 举报
回复 1
后台应该有数据库的那你单独建张表不就行了,我现在做的这套程序就是动态的限制了点数,每台计算机都可以登录但同时只能3台计算机登录,每次动态加载其网卡的IP,计算机名及网卡的MAC地址,这样我就可以计算这表里有条数来限制了,每退出一个删除一个。

数据是进行过加密的如果修改错误的话将永远不能登录除非去数据库修改正确的删除
我自逍遥01 2006-03-14
  • 打赏
  • 举报
回复
有没有办法直接查出来现在有多少计算机连接数据库呢?
leio 2006-03-14
  • 打赏
  • 举报
回复
你这里说的是连接数量,所以我假设你的软件系统是C/S类型的。
限制连接的数量,有两种方式:
1、只有特定的电脑才可以连接服务器
2、任意电脑都可以连接,但同时连接的数量不能超过2

这里不管是1还是2,软件的授权使用必须要有加密方式,常见的就是用机器码、序列号什么的,通常机器码都是从一些电脑硬件上得到的信息进行加密变换。

采用上述的第一种方式,则每台电脑上安装的软件都必须有相应的序列号(注册)才可使用。
采用上述的第二种方式,则需要在服务器上有相应的服务程序,由该程序控件连接到服务器的数量。只需要在服务器上注册一次即可,所有客户端无需注册,当然,注册信息里必须要包含数量。

方式一不用多说了,已经有很多这样的贴子了。

方式二,我的做法是这样的:在服务器端用winsock做了个服务端程序,程序启动时检测注册码并算出可连接的数量。每台客户端启动时都会先通过winsock连接服务端程序并在得到服务端正确反馈后才去连接数据库正常运作。服务端程序根据连接的数量反馈不同的消息。这种方式对于连网软件用户数量较多的时候比较方便,只要在服务器上注册一下就可以了。
在此基础上还可以增加一些功能,比如要控制软件能在哪些电脑上运行。可以事先将这些电脑的机器码保存到数据库里。当客户端程序启动并通过winsock连接时,将本机机器码发送到服务端程序,由服务端程序判断是否让其连接。也可以用此作为一些权限标准等等。


我曾经有一个软件就是用这种方式,每一个登录用户都可以绑定一个网卡号。这个帐号只能在有这个网卡号的电脑上登录。

大师归来 2006-03-14
  • 打赏
  • 举报
回复
把网卡的IP地址及MAC码都写到数据库里到时进行验证不就行了
我自逍遥01 2006-03-14
  • 打赏
  • 举报
回复
这个也不是很现实呀。
xyqiqi 2006-03-14
  • 打赏
  • 举报
回复
你让客户端机器都注册,只有注册的机器才能连接。
bqj 2006-03-14
  • 打赏
  • 举报
回复
关注
我自逍遥01 2006-03-14
  • 打赏
  • 举报
回复
顶一下。大家帮忙呀。
我自逍遥01 2006-03-13
  • 打赏
  • 举报
回复
可以具体点吗?最好有代码
orcd 2006-03-13
  • 打赏
  • 举报
回复
硬盘加密

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧