Delphi2010中DataSnap高级技术(6)—加强服务程序对访问者的控制能力

1)作为一个服务程序,如果不限制客户端访问数量,后果将是很可怕的。如果有人恶搞,服务器不堪重负,内存将耗尽,最终服务器将宕机。如何限制访问者的数量呢?

 

我们可以设置一个变量,来记录来访者的数量,如果超过我们既定的数字,那么后续的连接服务器请求,都将被断掉。

 

2)限制了访问数量,但是如果不做密码身份认证,无关的人员也将能登陆服务器!解决办法是客户端传入用户名和密码,如果用户名和密码不正确,连接将被挂断。

在客户端的SQLConnection1中driver分类的username和password属性设置好用户名和密码。

 

3)尽量不要设置DSTCPServerTransport1的Maxthreads属性,还有数据库连接池也不要设置,delphi2010会有内存泄露,这两个参数保存默认即可。

 

在dsserver1控件的onconnect事件中加入如下代码(使用的是tcp/ip连接):

 

procedure TMainForm.DSServer1Connect
  (DSConnectEventObject: TDSConnectEventObject);
var
  val: TCP_KeepAlive;
  Ret: Integer;
  ClientConnection: TIdTCPConnection;
begin
  // 最大连接数量,验证来访者密码
  if (DSConnectEventObject.ChannelInfo = nil) or (Connections >= 500) or
    (DSConnect

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Delphi XE10 是 Embarcadero 公司开发的一款集成开发环境(IDE),可以用来实现跨平台的客户端-服务器应用程序。其DataSnap 技术是其重要特性之一,可以方便地实现分布式多层应用程序的开发。 DataSnap 是一种基于 HTTP/HTTPS 协议的轻量级远程通信框架。它使用 JSON 或者二进制格式进行数据交换,可以实现多种不同的通信模式和数据传输方式。DataSnap 的核心机制是通过 DataModule 组件将前端客户端和后端服务器分离,在前端和后端之间建立通信通道,进行方法调用和数据传输。 Delphi XE10 的 DataSnap 还提供了一些附加特性,如身份验证和授权控制、并发控制、消息发布和订阅等。这样可以帮助开发人员更好地组织和管理分布式应用程序的数据交换和业务逻辑。 使用 Delphi XE10 的 DataSnap 技术,开发人员可以快速构建跨平台的客户端-服务器应用程序。无论是 Windows 还是 macOS、iOS 还是 Android,都可以使用 Delphi XE10 来开发数据密集型的分布式应用程序。 总结来说,Delphi XE10 的 DataSnap 是一种方便、易用的远程通信框架,可以帮助开发人员构建跨平台的分布式多层应用程序。通过 DataSnap,开发人员可以简化远程数据交换、方法调用和业务逻辑的实现。无论您是初学者还是经验丰富的开发人员,都可以使用 Delphi XE10 的 DataSnap 来轻松地开发功能强大的客户端-服务器应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值