翻譯|使用教程|編輯:況魚杰|2019-06-26 17:48:31.660|閱讀 663 次
概述:本教程介紹兩個數據提供程序如何協同工作以及如何使用多個Write調用來發送復雜內容。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
RealThinClient SDK是用于開發標準的HTTP(S)服務器,ISAPI擴展以及客戶端的VCL控件。可用于Windows下的CodeGear Delphi 6-2010。關于RealThinClient SDK的教程會持續更新,本節是RealThinClient SDK的第二課,如何使用構建的服務器發送動態生成的內容。
在本教程中,您會了解兩個數據提供程序如何協同工作以及如何使用多個Write調用來發送復雜內容。
下面是具體的操作步驟:
打開Web Server的項目。
將一個RtcDataProvider組件添加到我們的項目中。
當添加一個新的RtcDataProvider時,它將生成一個頁面,其中的方形值從1到100。我們已經有另一個 RtcDataProvider組件在該項目中運行,并為/ TIME請求提供內容。現在我們添加另一個 RtcDataProvider組件,它將為/ SQUARE請求提供內容。
從RTC Server組件組中獲取TRtcDataProvider組件并將其放在Form1中。
為提高項目的可讀性,此示例中RtcDataProvider組件已重命名為 rdpSquare。
將RtcDataProvider連接 到我們的服務器。
因為可以同時在多個端口中監聽多個服務器組件,所以需要知道RtcDataProvider將使用哪個服務器(RtcHttpServer組件)
配置RtcDataProvider 事件以查看特定請求并添加要發送的內容。
連接RtcDataProvider到服務器后,還需要定義服務器偵聽的請求類型。在這種情況下,RtcDataProvider組件將偵聽/ SQUARE請求。
使用with
procedure TForm1.rdpSquareCheckRequest(Sender: TRtcConnection);
begin
with TRtcDataServer(Sender) do
if UpperCase(Request.FileName) = '/SQUARE' then
Accept;
end;
不使用with
procedure TForm1.rdpSquareCheckRequest(Sender: TRtcConnection);
var
rdsServer : TRtcDataServer absolute Sender;
begin
if UpperCase(rdsServer.Request.FileName) = '/SQUARE' then
rdsServer.Accept;
end;
定義OnDataReceived事件以發送響應。
對于可以安全地安裝在服務器內存中的小文件或文件(例如,最高32K)或準備網站輸出,不需要拆分傳輸。您可以直接從RtcDataProvider組件的OnDataReceived事件中輸出文件。也可以連續使用Write方法。
我們必須對RtcDataProvider組件的請求到達時將發送的內容進行定義。
所以必須編寫RtcDataProvider組件的 OnDataReceived事件。注意:必須等到請求完成后才能將響應發送回請求數據的客戶端。
使用with
procedure TForm1.rdpSquareDataReceived(Sender: TRtcConnection);
var
viLine : integer;
begin
with TRtcDataServer(Sender) do
begin
if Request.Complete then
begin
Write('');
Write('Square Values');
Write('NumberSquare');
for viLine := 1 to 100 do
begin
Write('' + IntToStr(viLine) + '');
Write('' + IntToStr(viLine * viLine) + '');
end;
Write('');
end;
end;
end;
不使用with
procedure TForm1.rdpSquareDataReceived(Sender: TRtcConnection);
var
viLine : integer;
rdsServer : TRtcDataServer absolute Sender;
begin
if rdsServer.Request.Complete then
begin
rdsServer.Write('');
rdsServer.Write('Square Values');
rdsServer.Write('NumberSquare');
for viLine := 1 to 100 do
begin
rdsServer.Write('' + IntToStr(viLine) + '');
rdsServer.Write('' + IntToStr(viLine * viLine) + '');
end;
rdsServer.Write('');
end;
end;
保存并運行我們的項目以檢查服務器的響應
最后就是運行服務器,如果一切正常,我們應該在屏幕上看到我們的Form1。
如果我們打開一個Web瀏覽器并轉到 http:// localhost / square,我們應該得到一個表格,其中包含從1到100的數字的平方值。
還可以在請求/ TIME時檢查之前的RtcDataProvider組件是否正在發送內容。 轉到http:// localhost / time,顯示如下:
年中活動倒計時中,還不趕緊下手,點擊就可領取 MyEclipse 、.NET Reactor、FastReport .Net、VMProtect等超多在線訂購產品優惠券!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: