Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交......
Hashtable 缓存在线人数实现教程
网站常常要缓存在线人数,用 Hashtable 就是一个不错的选择,毕竟存取十分方便快速,下线的会员可以随时删除减少服务器的压力。
必须定义一个静态的 Hashtable,不然无法缓存;Hashtable.Synchronized 表示 Hashtable 在进程间同步,以免出错。该类基本实现了要用到的方法,只需调用就可以了。
Hashtable 缓存在线人数实例:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Web;
public class OnLineUser
{
private static Hashtable ht = Hashtable.Synchronized(new Hashtable());
/// <summary>
/// 向 Hashtable 中添加会员
/// <summary>
/// <param name="userId">会员ID</param>
public static void AddUser(string userId)
{
if(!ht.Contains(userId))
ht[userId] = DateTime.Now;
}
/// <summary>
/// 检查会员是否在线
/// <summary>
/// <param name="userId">会员ID</param>
/// <param name="t">超过几分钟不请求视为下线</param>
/// <returns>true:在线;false:不在线</returns>
public static bool IsOnLineUser(string userId, int t)
{
if(ht.Contains(userId))
{
DateTime dt = (DateTime)ht[userId];
if(GetMinutes(DateTime.Now, dt) > t)
return true;
else
return false;
}
else
return false;
}
/// <summary>
/// 显示所有在线会员
/// <summary>
/// <returns>所有在线会员</returns>
public static string ShowOnLineUser()
{
if(ht.Count > 0)
{
StringBuilder sb = new StringBuilder();
foreach(DictionaryEntry de in ht)
sb += de.Value.ToSting();
}
return sb.ToSting();
}
/// <summary>
/// 取两个时间间隔(分)
/// </summary>
/// <param name="newTime">新时间</param>
/// <param name="oldTime">旧时间</param>
/// <returns>两个时间间隔</returns>
public static int GetMinutes(DateTime dt1, DateTime dt2)
{
TimeSpan ts1 = new TimeSpan(dt1.Ticks);
TimeSpan ts2 = new TimeSpan(dt2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
return (int)ts.TotalMinutes;
}
}
标签: Hashtable缓存在线人数
相关文章
- 详细阅读
-
福昕阅读器注释怎么用?福昕阅读器注释使用技巧详细阅读
福昕阅读器 提供不同一类型的注释工具:文本标注工具、图钉工具、打字机工具以及绘图工具。 您能够在注释菜单下找到这些工具。通过这些注释工具,您可在 PDF 文件中输入文本或通......
2016-05-05 205 福昕阅读器
-
红米note3添加指纹详细教程详细阅读
红米note3有着小米手机系列的第一款指纹识别功能。对于指纹识别,相信大家并不会陌生。可此次是小米第一次推出指纹识别的机器,也是MIUI第一次加入指纹识别这项技术。那么拿到手......
2016-10-25 200 红米note3
-
PS对齐到对象(Photoshop移动工具)详细阅读
PS对齐到对象:有助于精确地放置选区、裁剪选框、切片、形状和路径等 Photoshop移动工具:用来移动排列当前图层或者当前图层中选区内的图像。 移动工具快捷键为V。另外当前工具如......
2023-03-31 212 PS对齐到对象 Photoshop移动工具
-
Skype“无法登录,报错内存不能读”的解决方法!详细阅读
有一些用户会在登录Skype时遇到了无法登录,报错内存不能读这一个问题,这个问题主要影响windows版本用户。这个问题是有解决方法的,而且还可以手动修复。现在,小编就教大家如何修......
2016-10-11 200 Skype网络电话