DataSnap TCP连接中如何将客户端的Socket连接与回叫标识绑定?

FlashDance 2015-01-22 10:24:18
DataSnap中能将客户端的Socket连接与回叫标识绑定吗?


客户端注册回叫标识(客户端似乎不能取自己的Socket连接):

DSClientCallbackChannelManager1.ManagerId := ClientId;
DSClientCallbackChannelManager1.RegisterCallback(CallbackId,
TDataSnapCallBack.Create);


服务端取客户端的Socket连接:

procedure TServerContainer1.DSServer1Connect(
DSConnectEventObject: TDSConnectEventObject);
begin
DSConnectEventObject.ChannelInfo.ClientInfo.IpAddress;
DSConnectEventObject.DbxConnection.Destroy;
end;
...全文
326 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
FlashDance 2015-01-26
  • 打赏
  • 举报
回复
引用 1 楼 lyhoo163 的回复:
不好意思,没有看懂你的意图。 DataSnap 有自己的一套回收机制。你说的可能与此无关。 DataSnap TCP的Socket连接,就是一种TCP/IP的连接方式。 你说的可能是,客户端登录时机制。 通常我们要把客户端的计算机名,IPf地址,用户名,密码,上传服务器端。决定是否连接,事实上忆经连接,不然如何辨别用户信息和密码是否正确。确定登录成功,才能读取数据。登录成功的同时,还可回复一个成功的信息。
我是想把Socket连接与回叫标识绑定,在同一回叫标识重复登录(密码泄露)时,可以在服务端进行一些控制,如:提示用户密码可能泄露,或者直接在服务端断掉这个客户端
FlashDance 2015-01-26
  • 打赏
  • 举报
回复
引用 3 楼 lyhoo163 的回复:
Socket连接是不能拒绝的。只在让登录后,看客户端的用户名和密码是否合法,决定是否让它继续(读取数据)。 通常判断是否合法: 1、限定用户的IP地址; 2、同一用户,不能重复登录; 3、偿试登录次数,不能超过次数。 你的问题,应该是服务器对客户端的判断处理。

procedure TServerContainer1.DSServer1Connect(
  DSConnectEventObject: TDSConnectEventObject);
begin
  DSConnectEventObject.ChannelInfo.ClientInfo.IpAddress;
  DSConnectEventObject.DbxConnection.Destroy;
end;
上面的代码就是服务端拒绝客户端连接,用于限制最大连接数时使用 现在想在服务端根据ClientId和CallbackId进行相应的处理,并不限于IP 如: 一、相同的ClientId重复登录,提示密码泄露; 二、相同的ClientId重复登录,直接拒绝(DbxConnection.Destroy) 三、连接数达到200或设定的某值后,只有VIP ClientId可以连接,其它的直接拒绝(DbxConnection.Destroy) 以及更多其它情况 这就需要将ClientId、CallbackId和实际的DbxConnection联系起来。
lyhoo163 2015-01-26
  • 打赏
  • 举报
回复
Socket连接是不能拒绝的。只在让登录后,看客户端的用户名和密码是否合法,决定是否让它继续(读取数据)。 通常判断是否合法: 1、限定用户的IP地址; 2、同一用户,不能重复登录; 3、偿试登录次数,不能超过次数。 你的问题,应该是服务器对客户端的判断处理。
lyhoo163 2015-01-25
  • 打赏
  • 举报
回复
不好意思,没有看懂你的意图。 DataSnap 有自己的一套回收机制。你说的可能与此无关。 DataSnap TCP的Socket连接,就是一种TCP/IP的连接方式。 你说的可能是,客户端登录时机制。 通常我们要把客户端的计算机名,IPf地址,用户名,密码,上传服务器端。决定是否连接,事实上忆经连接,不然如何辨别用户信息和密码是否正确。确定登录成功,才能读取数据。登录成功的同时,还可回复一个成功的信息。

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧