读书人

做在线列表的方法

发布时间: 2012-03-21 13:33:15 作者: rapoo

求一个做在线列表的方法
我做了一个C/S程序
大体是这样的
服务器是并发的 每次有客户端连接并验证后开一个线程,这样每次得到一个客户端信息,我想做一个在线列表功能,显示当前在线的用户,客户端下线的时候在列表里删除
试过用数组循环读取和写数据库,都太慢了 占资源也很夸张
用数组的话每次有客户端连接的时候都要循环匹配一次,速度太慢也很占资源,还得定时检查是不是已经掉线.
用数据库的话也是经常出错,资源占用也很高.
实际应用中大概有60个左右的客户端并发,且上下线的频率也很高,服务器经常挂掉,无奈现在把这个在线列表去掉了,但客户强烈要求加上,还得支持踢人的功能,俺滴个神那~太折磨人了
跪求高手给个好点的方法~万分感谢! 分不多 帐号里只有这些了~

[解决办法]
也是一知半解,给你思路:
用户登录,服务端发送命令通知所有在线用户,谁登录了。客服端在线列表加入这个新登录的用户。
用户退出,服务端也做同样的事情。客服端删除这个在线用户。不必每次都从服务端读取所用在线用户。
服务器和客服端发送的内容格式要规范,统一。主要还是客服端和服务端的数据传输协议。
当然要让客服端时不时发送心跳包,让服务端知道谁在线,谁掉线等。
在线用户:
1.在服务端用数据库或者一个文件来存放都可以。
2.客服端用list(0f T)等IList或者泛型数据集。

读书人网 >VB Dotnet

热点推荐