DIOCP之获取在线用户列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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之获取在线用户列表的主要内容,如果未能解决你的问题,请参考以下文章

我无法获取在线用户列表是 spring security

如何在 ejabberd/XMPP 中获取所有在线用户的列表?

Yii2如何获取在线用户列表?

使用 strophe 获取在线用户列表 xmpp [关闭]

DIOCP之编写第一个应用程序

XMPPFramework - 如何获取在线和离线好友列表?