(连接篇)
Delphi 的MIDAS出来了这么多年终于有改进的版本了,COM-FREE的DataSnap 2009真是清爽了很多,DataSnap 2009 除了不支持回调和Intercept组件以外 其它的该有的都有了 而且还有很多强大的特性;
第一篇就先写点DataSnap 2009连接方面可能要用到的东西,以后再继续写写关于生命周期的管理 对象池的应用 以及远程管理 远程方法调用等方面的东西吧。
首先 建立个DataSnap 2009的服务器工程,一共用到三个组件:
DSServer 服务配置组件 用于绑定其它的组件;
DSServerClass 可以看作是一个类的工厂 用于导出需要远程调用的服务端模块;
DSTCPServerTransport 传输组件 这里使用的是indy的tcpserver;
将DSServerClass和DSTCPServerTransport 的Server设置成DSServer就可以了,客户端连接和断开连接时会触发DSServer的两个事件OnConnect和OnDisConnect,参数为 TDSConnectEventObject。
我们看下该类的定义
我们可以看到其中包含了两个属性ConnectProperties 和ChannelInfo:
ConnectProperties 包含了客户端连接所传递的参数 Params 也就是一个TStrings的内容;
ChannelInfo 里面有个很重的属性就是它的ID 其实是TIdTCPConnection对象的ID 所以我们可以直接强制转换成TIdTCPConnection;
然后建立个DataSnap 2009的客户端工程,由于使用的DbExpress框架客户端连接用的是TSQLConnection组件,只要把Driver设置成Datasnap即可。连接的服务器地址通过HostName和Port来进行设定,下面我们就实现个简单的DEMO 客户端通过用户名和密码连接服务端 如果密码不争取服务端则断开连接。
客户端主要函数
服务端主要函数
注意:OnConnect事件中还可以使用另外一种方式拒绝客户端连接,在代码中抛出个异常即可 在客户端会捕捉到一个TDBXError的异常 显示'Remote error ' 加上异常显示的消息。
效果图如下:
分享到:
相关推荐
DataSnap Demo:TFDConnection、最大连接数、客户端回叫功能、多线程模拟、压力测试等,编译环境XE6 Update 1
DataSnap 2009学习范例.rar
android java 调用delphi DX10 datasnap 接口 网络连接不成功的解决办法
Delphi XE7开发入门教程之DataSnap三层架构篇 主要是delphi 开发datasnap的案列 以前积分太多了,现在降下来 5个积分
分8个章节讲述了如何用Delphi XE8 DataSnap开发系统
Android studio客户端连接 Delphi XE REST DataSnap服务器
Delphi XE7开发入门教程之DataSnap三层架构篇-第一部分
解决问题:delphi D10下(XE8\XE7),DataSnap连接超时设置在android中使用无效,导致不能连接服务器时长时间等待。补丁包带源码及说明。 Datasnap ConnectTimeout android
在xe5(delphi)下编译的,估计在xe2以上版本中都可以编译。因为编译后的可执行文件太大了,这次就没有提供.exe文件.
《Delphi XE3 DATASNAP 开发实战篇》 附书源码
delphi xe DataSnap连接超时设置无效,下载这个补丁到应用程序所在目录即可,文件内有说明
datasnap2010 中文白皮书 datasnap2010 中文白皮书 datasnap2010 中文白皮书
Embarcadero公司刚刚出版了我新的基于一个小的现实世界的DataSnap应用程序的DataSnap开发白皮书, 几乎涵盖所有你能想象你在RAD Studio XE中 学习有关DataSnap多层应用程序开发的的内容:从简单 的服务器安全连接...
cb2010_DataSnap_demo 从服务端的 access数据库读取数据到客户端,在C++Building2010下编译通过
DataSnap REST C++PDF版 DataSnap REST 使用方法教程
DELPHI DataSnap 实例
datasnap 白皮书 测试源码,自己编写的书的源码
DataSnap的一个服务端和客户端的一个例子,可以参考一下!
Delphi2010 DataSnap白皮书(翻译参考书)