如何分辨是哪个客户端(100分)

  • 主题发起人 主题发起人 lh9529
  • 开始时间 开始时间
L

lh9529

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在用一个IdTCPServer作为数据库管理端
客户端连接它,然后,客户端指定打开的帐号个数,会有多个客户端连接数据库管理端
当客户端打开某个帐号,管理端就把他的Use_Flag设置为TRUE,其他客户端就不能打开
当客户端关闭该帐号,就把它设置为FALSE。
那么,如果关闭一个客户端,就要把他的全部打开帐号全部设置成FALSE
我该怎么判断是哪一个客户端关闭,并设置它打开的帐号呢?
谢谢 ~~~在线等~~
 
我的全文检索一直无法使用,所以不能在论坛里搜索相关的帖子
还请各位老大 帮帮我哈
 
如果我没记错的话,每个客户端通过Socket连到服务端的时候,Socket的Handle是唯一的。Socket连接的时候,可以建立客户端Socket的Handle和客户端帐号的对照。
Socket关闭的时候,可以通过Socket的Handle来取出之前对应的客户端帐号。
 
6万多个port 每个port lisen 成功,产生一个 id ,你要记录这个id,和你对应的自设帐号名, 才能正确操作
 
帮你顶一个,接个分
 
问题解决了哈 ,贴出来大家分享
代码如下 :
//------------------------------------------------------------------------------
// 保持线程
//------------------------------------------------------------------------------
procedure TForm_Main.IdTCPServerConnect( AThread: TIdPeerThread );
var listAccount : PStringList;
begin
new(listAccount);
listAccount^ := TStringList.Create;
AThread.Data := Pointer(listAccount);
end;
//------------------------------------------------------------------------------
// 通讯
//------------------------------------------------------------------------------
procedure TForm_Main.IdTCPServerExecute(AThread: TIdPeerThread);
var
listAccount : ^TStringList;
begin
...
listAccount := Pointer(AThread.Data);
listAccount.Add(ADOQuery_u.FieldByName('username').AsString);
...
end;

帮顶的都散分了哈,谢谢 ~~~
 
后退
顶部