Delphi2010中DataSnap高级技术(3)—DataSnap服务器如何得到客户端的IP和端口

Delphi2010DataSnap高级技术(6)—加强服务程序对访问者的控制能力 1)作为一个服务程序,如果不限制客户端访问数量,后果将是很可怕的。如果有人恶搞,服务器不堪重负,内存将耗尽,最终服务器将宕机。如何限制访问者的数量呢? 我们可以设置一个变量,来记录来访者的数量,如果超过我们既定的数字,那么后续的连接服务器请求,都将被断掉。 2)限制了访问数量,但是如果不做密码身份认证,无关的人员也将能登陆服务器!解决办法是客户端传入用户名密码,如果用户名密码不 阅读详情

作为一个服务器软件,必须做到对客户端强有力的控制,想要控制,就必须得到客户端的网络基本信息,比如客户端IP和端口。有了客户端IP就能随心所欲操控客户端,比如终止某些客户端的连接、限制功能等等。

 

在delphi2010中的datasnap服务器如何获得客户端ip,的确花了我点时间,奇怪为什么这个功能不做的更人性化点呢,功能总是藏着掖着。还得让程序员像寻宝一样摸索,浪费时间。现在把我整理的结果奉献给大家,免得大家在花时间研究这个。

 

另外,通过研究发现,DSConnectEventObject.ChannelInfo.Id 属性实际上是内存地址,并不是一个简单的数字。

 

 

以下代码红色部分是关键。

 

uses IdTCPConnection;

......

 

procedure TServerContainer1.DSServer1Connect
  (DSConnectEventObject: TDSConnectEventObject);
var
  ClientConnection: TIdTCPConnection;
begin
  with Form1 do
  begin
    dsShowDataSet.Append;
    dsShowDataSet['ClientConnectTime'] := Now;

    if DSC

【低空经济】无人机充电站设计方案 随着无人机技术的快速发展广泛应用,其在物流、农业、巡检、救援等领域的应用日益普及。然而,无人机的续航能力一直是限制其大规模应用的关键因素之一。为了解决这一问题,无人机充电站的设计与建设显得尤为重要。本项目旨在设计一套高效、智能、可扩展的无人机充电站系统,以满足不同场景下无人机的充电需求,提升其作业效率应用范围。无人机充电站的设计将围绕以下几个核心目标展开:首先,充电站应具备快速充电能力,以减少无人机的停机时间,提高作业效率; 阅读详情

相关推荐

17、神经网络训练算法与高阶模糊Cohen - Grossberg神经网络稳定性分析

本文介绍了一种新的数据驱动算法用于神经网络训练,该算法继承三次样条权重函数的优点,具有简单架构良好泛化性能,并通过并行机制显著提升训练速度。同时,研究了高阶模糊Cohen-Grossberg神经网络(HOFCGNN)在可变及无界延迟下的稳定性,利用M矩阵理论向量Lyapunov函数方法,证明了系统平衡点的存在性、唯一性全局指数稳定性。研究成果为神经网络的高效训练与稳定应用提供了理论支持技术路径。

b9c0d的博客 136

Delphi2010中采用DataSnap的三层网络架构服务器获取客户端ip,端口信息

需要的控件首先要有 TDSServerModule、 TDSServer、TDSTCPServerTransport; TDSServerClass、TDataModule;实现上述功能主要控件如下图所示 包含的单元包括 SysUtils, Classes, DSTCPServerTransport, DSHTTPCommon, DSHTTP, DSServ

singular2611 2134

TeighaViewer_vc10dll_3.09.1.msi

ODA开发用于技术图形应用程序的核心平台Teigha™, Teigha支持dwg、dgn、stl、pdf之间的数据交换。Teigha支持的多个平台:Windows、Mac、Unix、Linux等。

Delphi DataSnap入门操作,动起来

DELPHI DATASNAP 2010 入门操作(2)不写一行代码,绿色三层我也行 https://www.cnblogs.com/zhqian/archive/2010/07/06/1771798.html 转载于:https://www.cnblogs.com/studycode/p/11493322.html...

weixin_30569001的博客 299

DelphiDataSnap发挥最大效率

 一个DataSnap的应用程序由两个层组成:DataSnap服务器,它有一个带有一个或者更多DataSetProvider组件的远程数据模块;DataSnap客户端,它带有一个xxxConnection组件一个或者多个连接到DataSetProviders的ClientDataSets。你可以不使用ClientDataSet而换用XMLBroker组件,后者是专门用在InternetE

编程资料收集与共享交流 888

Delphi DataSnap 初步入门使用总结

概念: Delphi 最新的 DataSnap 支持的多层架构,其代码架构以前的不一样。 之前,无论是 DCOM 还是 WebService,服务器端公开给客户端调用的方法,都是采用 interface 的方式。客户端调用 interface 里面的方法,服务器端实现 interface 里面的方法。 DataSnap 则是在客户端产一个对应服务器端的类,这个类里面包含服务器

pcplayer的博客 2528

datasnap 2010 DataSnap服务器如何得到客户端IP端口

作为一个服务器软件,必须做到对客户端强有力的控制,想要控制,就必须得到客户端网络基本信息,比如客户端IP端口。有了客户端IP就能随心所欲操控客户端,比如终止某些客户端的连接、限制功能等等。 在delphi2010中的datasnap服务器如何获得客户端ip,的确花了我点时间,奇怪为什么这个功能不做的更人性化点呢,功能总是藏着掖着。还得让程序员像寻宝一样摸索,浪费时间。现在把我整理的结果奉献给...

weixin_33961829的博客 179

Delphi2010DataSnap高级技术

Delphi2010DataSnap高级技术 日期:2010年12月1日 作者:SUNSTONE原创 人气:13498 查看:[大字体 中字体 小字体] (1)—为DataSnap系统服务程序添加描述 这几天一直在研究Delphi 2010DataSnap,感觉功能真是很强大,现在足有理由证明Delphi7该下岗了。 DataSnap有三种服务模式,其中Service Appl...

diaowojian9497的博客 147

Delphi2010DataSnap技术网摘

Delphi2010DataSnap技术网摘 一、为DataSnap系统服务程序添加描述 这几天一直在研究Delphi 2010DataSnap,感觉功能真是很强大,现在足有理由证明Delphi7该下岗了。 DataSnap有三种服务模式,其中Service Application方式建立的Windows服务没有描述,描述部分是空的,可用如下方法添加服务描述: pro...

218

Delphi DataSnap 流程分析()

好像HTTP都没什么关系,TDSServerTransport有关系,TCP的有个组件TDSTCPServerTransport,也看看它的继承关系。现在的方式2添加了HTTP支持,但是其实现方式不是直接通过WebModule来实现,而是转了个弯,通过桥接Indy的Http来实现。开始引入了Dispatch,到这里基本就明白了,后面的处理方式一般的HTTP类似,只是简化了(DataSnap专用)。我们先来简要分析下方式2的流程,然后主要分析方式1的流程,方式3的流程类似方式1,就不做分析了。

舞天涯的专栏 2078

Delphi XE8中开发DataSnap程序常见问题解决方法 (三)用TClientDataSet的“ProviderName”属性连接服务器时,无法找到服务器端的“DatasetProvier”...

当我们在客户端用TClientDataSet的“ProviderName”属性连接服务器时,无法找到服务器端的“DatasetProvier”!! 问题原因:服务器端对提供服务的控件所属单元选择错误。所有对客户端提供服务器的方法、控件等等,必须全部放到“ServerMethodsUnit1”里面,否则无法对客户端提供服务。 解决方法:把这些提供服务的控件放到“ServerMethods...

weixin_30912051的博客 760

DataSnap创建简单服务器客户端,确认相连的步骤。

软件版本:RADstduio 10.3 先要创建客户端 端口客户端服务器端可以修改但一定要一致。 之后点击完成,则会自动创建客户端程序 像这样 三个文件根据需要选中右键重命名。简单查看三个文件的内容,先不用更改,直接运行,占用211的端口,这样客户端就可以找到它。主要看它与客户端的相连,其余后续再补。 运行截图 客户端 之后再新建–项目–other–选择客户端模块 服务器不运...

incompetent的博客 2162

delphi互联网消息服务器,Delphi2010中采用DataSnap的三层网络架构服务器获取客户端ip,端口信息...

需要的控件首先要有 TDSServerModule、 TDSServer、TDSTCPServerTransport;TDSServerClass、TDataModule;实现上述功能主要控件如下图所示包含的单元包括SysUtils, Classes,DSTCPServerTransport,DSHTTPCommon, DSHTTP,DSServer, DSCommonServer, Provid...

weixin_39858124的博客 801

Delphi2010开发DataSnap服务器(一)

今天简单的研究了一下Delphi开发DataSnap服务器,以下是简单的例子,各位见笑了。 第一步创建一个DataSnap Server 这里选择默认 选择好了以后这里生成3个文件,我将这3个文件重新命名。 来到TServerMethods这个文件里面的代码页,我们添加一个方法 GetMessage。 function TServerMethods.GetMessage(Us

放肆的IT的专栏 5425

Datasnap 获取客户端IP

uses Data.DBXTransport; //ServerContainer procedure TServerContainer.DSServer1Connect(DSConnectEventObject: TDSConnectEventObject); var ci: TDBXClientInfo; ClientID: Integer; begin ci := DSConnectEventObject.ChannelInfo.ClientInfo; ClientID := DSC...

钱多多的博客 369

基于HTTP的DataSnap session管理

uses System.StrUtils, Datasnap.DSSession, SessionStoreObjectUI; function TServerMethods1.EchoString(Value: string): string; begin   Result := Value; end; function TServerMethods1.ReverseString(Va...

清风-德尔斐 872
上一篇: Delphi2010中DataSnap高级技术(2)—DataSnap服务端和客户端发布分发方法
下一篇: 宝贝女儿快9个月了
sunstone
博客等级 码龄27年 61粉丝 36原创
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值