程序的在线人数统计如何做
程序的在线人数统计怎么做?程序的在线人数统计怎么做?最好就不用做server端,不过可以连database现在的情况
程序的在线人数统计怎么做?
程序的在线人数统计怎么做?
最好就不用做server端,不过可以连database
现在的情况是大家都访问一个公共硬盘上的EXE,我想统计出同时在线人数
[解决办法]
首先给每个登录用户建立一个数据项,里面有他最后一次活动时间
他的每次动作,都更新这个时间信息
检查函数:循环比较每个数据项里的时间值,与当前时间差大于5分钟,即删除本数据项,对应的用户就算离线了
[解决办法] 数据库存数据肯定比你用文件方便,因为数据库可以多用户同时访问,你同一个文件假如在同一时间(机率很小,但不是没有可能的)写的话,就不知道是什么情况了。
其实最好的办法是用server.exe程序,一直在服务端运行着,用tcp连接等待连接,别人运行的exe不用管是哪个运行了,运行后就直接连接server.exe,由server.exe进行统计比较好,比数据库来得直接,因为server中可以使用tserversocket来管理,有人断开,就对应查找该ip的连接,你要统计在线人数,直接统计tserversocket中的有效连接就可以了,比数据库好,因为这连接数可以同时在线上千人。如果需要更大的,比如需要上万人,十万人的话,估计你只能用api来实现了。希望我的回答对你有帮助
[解决办法]
每分钟检查一次:最近动作时间已经在5分钟之前的用户,算离线
怎样检查?是否可以举例?
首先给每个登录用户建立一个数据项,里面有他最后一次活动时间
他的每次动作,都更新这个时间信息
检查函数:循环比较每个数据项里的时间值,与当前时间差大于5分钟,即删除本数据项,对应的用户就算离线了
你这个方法是可以,但是如果在线人数很多数据库的开销是不是很大?如果不用数据库,写到文件的话会不会好点?
写文件肯定好些,每个用户一个记录。