提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:况鱼杰|2019-06-19 16:23:33.313|阅读 1056 次
概述:在本教程中,将会展示如何在Delphi中使用RealThinClient SDK构建一个Web服务器。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
RealThinClient SDK是用于开发标准的HTTP(S)服务器,ISAPI扩展以及客户端的VCL控件。可用于Windows下的CodeGear Delphi 6-2010。关于RealThinClient SDK的教程会持续更新,本节是RealThinClient SDK的第一课,如何构建一个Web服务器。
构建一个Web服务器需要四个大步骤:
创建一个项目
添加两个RealThinClient SDK组件(RtcHTTPServer和RtcDataProvider)
配置三个事件。
检查我们的Web服务器是否正常工作。
具体操作如下:
创建一个新的VCL Forms项目。在RAD Studio中,选择File -> New。
创建之后如下所示:
在表单中添加RtcHttpServer组件。在RTCServer组中添加一个RtcHttpServer组件,(要创建一个EXE文件,使用RtcHttpServer组件,如果用ISAPI的DLL方式,将使用TRtcISAPIServer组件)。
然后将其拖到Form1区域。
设置侦听请求的端口。选择端口80(通常,所有Web服务器默认在端口80上侦听)。
转到组件属性。单击RtcHttpServer1组件并转到属性部分。如果屏幕上未显示属性窗口,请按F11,在属性窗口中,查找名为ServerPort的属性并将其值设置为80。
创建表单后,RtcHttpServer1组件开始监听。双击Form1或者选择Form1,转到属性窗口,点击Events>OnCreate,Delphi将为OnCreate()事件创建处理程序并将其显示在屏幕上。
注意:必须将代码添加到FormCreate事件中。要求RtcHttpServer在应用程序开始执行后立即开始侦听请求,因此不需要任何其他类型的控件来启动服务器。
procedure TForm1.FormCreate(Sender: TObject); begin RtcHttpServer1.Listen(); end;
RtcHttpServer组件的Listen()方法可以接受一个参数: Restarting,默认设置为False。此参数与RestartOn结合使用 。RestartOn允许定义三个属性:
ListenError:如果希望服务器在服务无法启动时重新启动,请将此参数设置为TRUE
ListenLost:如果希望服务器在服务停止侦听指定端口上的请求时重新启动,请将此参数设置为TRUE。
Wait:定义服务器在尝试重新启动服务之前应等待的时间(以秒为单位)。
在表单中添加RtcDataProvider。现在已经准备好服务器侦听请求,在表单中添加一个RtcDataProvider组件。将RTCServer组件中的TRtcDataProvider拖动到Form1中。
现在表单中已有两个组件。
将RtcDataProvider Server属性设置为RtcHttpServer1。
注意:哪个组件处理请求的服务器,就必须定义该组件处理那些请求。
为RtcDataProvider组件定义OnCheckRequest事件。
窗口显示内容:
本节的代码有两种方式:
使用with
procedure TForm1.RtcDataProvider1CheckRequest(Sender: TRtcConnection); begin with Sender as TRtcDataServer do if UpperCase(Request.FileName) = '/TIME' then Accept; end;
不使用with
procedure TForm1.RtcDataProvider1CheckRequest(Sender: TRtcConnection); var rdsSever : TRtcDataServer absolute Sender; begin if UpperCase(rdsServer.Request.FileName) = '/TIME' then rdsServer.Accept; end;
Request.Filename是客户端请求的完整文件名。RtcDataServer组件的Request属性还可以获取其他数据,如主机名,内容长度和类型,查询参数,HTTP 头等。接下来需接受“/ TIME”的请求,在这种情况下,将处理以下任何内容:
HTTP://本地主机/时间
HTTP://本地主机/时间
//127.0.0.1/TIME (FileName请求转换为大写)
为RtcDataProvider组件定义OnCheckReceived事件。
窗口显示内容:
本节代码如下:
使用with
procedure TForm1.RtcDataProvider1DataReceived(Sender: TRtcConnection); begin with Sender as TRtcDataServer do if Request.Complete then Write('Current Time is: ' + TimeToStr(Now)); end;
不使用with
procedure TForm1.RtcDataProvider1DataReceived(Sender: TRtcConnection); var rdsServer: TRtcDataServer absolute Sender; begin if rdsServer.Request.Complete then rdsServer.Write('Current time is: ' + TimeToStr(Now)); end;
编译且运行项目。按F9键,没有问题出现以下窗口:
最后转到服务器检查响应。(80端口:http:// localhost / time)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢