DIOCP之获取在线用户列表
通过获取tcpserver.getonlinecontextlist来得到在线列表

procedure TfrmMain.btn_refreshClick(Sender: TObject);
var
lvList:TList;
i: Integer;
lvClient:TMyClientContext;
lvItem:TListItem;
begin
lstClientINfo.Items.Clear;
lvList:=TList.Create;
try
FTcpServer.getOnlineContextList(lvList);
for i := 0 to lvList.Count - 1 do
begin
lvClient := TMyClientContext(lvList[i]);
lvItem := lstClientINfo.Items.Add;
lvItem.Caption :=IntToStr(i+1);
try
lvItem.SubItems.Add(TChatSession(lvClient.Data).UserID);
except on E: Exception do
lvItem.SubItems.Add('未登录');
end;
try
lvItem.SubItems.Add(TChatSession(lvClient.Data).UserMac);
except on E: Exception do
lvItem.SubItems.Add('未知');
end;
// lvItem.SubItems.Add('');
lvItem.SubItems.Add(lvClient.RemoteAddr);
lvItem.SubItems.Add(IntToStr(lvClient.RemotePort));
// if TChatSession(lvClient.Data).UserID<>'' then
//
// lvItem.SubItems.Add(TChatSession(lvClient.Data).UserID)
// else
// lvItem.SubItems.Add('');
lvItem.SubItems.Add(IntToStr(lvClient.SocketHandle));
lvItem.SubItems.Add(lvClient.StateINfo);
end;
finally
lvList.Free;
end;
end;
DIOCP之获取在线用户列表的更多相关文章
- 基于Redis的在线用户列表解决方案
前言: 由于项目需求,需要在集群环境下实现在线用户列表的功能,并依靠在线列表实现用户单一登陆(同一账户只能一处登陆)功能: 在单机环境下,在线列表的实现方案可以采用SessionListener来完成 ...
- [项目回顾]基于Redis的在线用户列表解决方案
迁移:基于Redis的在线用户列表解决方案 前言: 由于项目需求,需要在集群环境下实现在线用户列表的功能,并依靠在线列表实现用户单一登陆(同一账户只能一处登陆)功能: 在单机环境下,在线列表的实现方案 ...
- iOS6.0下获取通讯录用户列表
自iOS6.0后获取通讯录列表需要询问用户,经过用户同意后才可以获取通讯录用户列表.而且ABAddressBookRef的初始化工作也由ABAddressBookCreate函数转变为ABAddres ...
- SharedObject使用:在FluorineFx.net与Flex中使用共享对象维护在线用户列表实例【转】
一.添加一个新的FluorineFx的服务类项目OnLineService,删除原有的Sample.cs,并添加一个用户类定义与一个ApplicationAdpater类:如下: /*-- User. ...
- 关于使用HttpSessionBindingListener获取在线用户数,同一用户登陆一次
原创地址:http://blog.csdn.net/jiaoxueli/article/details/2226134 考虑到项目中统计在线用户数量和同一用户只能登陆一次的需求,查询联系 HttpSe ...
- 在线用户管理--ESFramework 4.0 进阶(05)
无论我们采用何种通信框架来构建我们的分布式系统,在服务端进行用户管理都是非常重要的一个环节.然而用户管理是否应该隶属于通信框架了?这个并不一定,通常来说,用户管理是与具体应用紧密相关的,应该是由应用解 ...
- Servlet监听器及在线用户
Servlet中的监听器分为三种类型Ⅰ 监听ServletContext.Request.Session作用域的创建和销毁 (1)ServletContextListener (2)HttpSessi ...
- C#开发微信门户及应用(4)--关注用户列表及详细信息管理
在上个月的对C#开发微信门户及应用做了介绍,写过了几篇的随笔进行分享,由于时间关系,间隔了一段时间没有继续写这个系列的博客了,并不是对这个方面停止了研究,而是继续深入探索这方面的技术,为了更好的应用起 ...
- Javaweb基础--->利用监听器统计在线用户数量和用户信息
首页布局:index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...
随机推荐
- null、空对象和undefined
null:是对象,但是空引用(不指向任何对象) 空对象:是对象,但它的值是指向没有任何属性的对象的引用 undefined:未定义,所以不是对象,本身被定义为“undefined”这一特殊类型 1. ...
- 序列化SerialVersionUID
Java中的SerialVersionUID - Java译站http://it.deepinmind.com/java/2014/05/25/why-use-serialversionuid-ins ...
- thrift demo
基于上一篇博客,安装thrift complier之后,就需要进行跑跑程序,来看看是否如同预期的那种效果. 前面的thrift compiler的主要作用,其实就是为了IDL的,就是防止客户端和服务端 ...
- android学习笔记56——Service
Service四大组件之一,需要在AndroidMainfest.xml中添加相关配置,运行于后台,不与用户进行交换,没有UI... 配置时可通过<intent-filter.../>元素 ...
- 使用-MM生成include指令和依赖生成(make include directive and dependency generation with -MM)
I want a build rule to be triggered by an include directive if the target of the include is out of d ...
- 【uTenux实验】信号量
信号量(semaphore)是一个用来指示可用的资源并将可用资源的数量以数值的形式表示出来的对象.当使用一组资源时,信号量用来实现互斥控制和同步.uTenux提供了信号量出来的API,可以很方便地使用 ...
- (C# Binary Tree) 基本概念和算法
A binary tree is defined as a tree where each node can have no more than two children. Building a Bi ...
- MVC4.0网站发布和部署到IIS7.0上的方法
最近在研究MVC4,使用vs2010,开发的站点在发布和部署到iis7上的过程中遇到了很多问题,现在将解决的过程记录下来,以便日后参考,整个过程主要以截图形式呈现 vs2010的安装和mvc4的安装不 ...
- C语言操作mysql
php中 mysqli, pdo 可以用 mysqlnd 或 libmysqlclient 实现 前者 从 php 5.3.0起已内置到php中, 并且支持更多的特性,推荐用 mysqlnd mysq ...
- 让background-color 无效
{ background-color: transparent; // 让背景透明,相当于背景颜色无效 }