CHttpServer

CHttpServer沒有基類。 類CHttpServer與CHttpServerContext 一起提供擴展ISAPI兼容的HTTP伺服器功能的方法。類CHttpServer 包括Internet Server API (ISAPI)功能,可以處理各種類型的客戶請求,包括擴展 DLL。CHttpServer 不能處理來自CGI執行的請求。這些擴展DLL 有時被 Internet ServerApplications調用;然而,它們是DLL,而不是EXE。為了簡短,我們將擴展DLL 稱為ISA。

要想了解CGI和ISA的區別,請參閱在線上文檔“Visual C++程式設計師指南”中的“Internet Server API(ISAPI)擴展”。

當ISAPI HTTP伺服器收到客戶瀏覽器的請求時,一個CHttpServer對象被創建並初始化,同時一個CHttpServerContext對象被創建。每個模組中只能有一個CHttpServer 實例存在;但是,對伺服器的每一次調用,都有一個ChttpServer-Context對象被創建。一個CHttpServer對象使用多個CHttpServerContext對象,以獨立執行緒運行。此設計允許使用不同的客戶連線對CHttpServer對象進行同時的多個調用。CHttpServer對象通過 CHttpServerContext對象與客戶或伺服器自身進行通訊。

當伺服器裝載ISA時,它在入口點GetExtensionVersion 調用ISA,獲得擴展所基於的指定的版本號。對每個客戶請求,HttpExtensionProc成員函式被調用。HttpExtensionProc的預設 (推薦)實現將讀取客戶數據並決定要採取什麼操作。你可覆蓋此成員函式以定製該實現。

其它CHttpServer成員函式處理客戶請求、格式化回答並與客戶聯繫。

當一個CHttpServer對象收到客戶命令時,文法分析映射將此命令與其類成員函式和參數關聯。對每個CHttpServer對象,只有一個文法分析映射被創建。

請參閱“Internet伺服器API (ISAPI)文法分析映射”以了解使用文法分析映射宏指令的一般信息。請參閱:BEGIN_PARSE_MAP和END_PARSE_MAP以了解如何創建文法分析映射及處理客戶命令的信息。

請參閱下列宏指令介紹,以了解客戶命令是如何與成員函式及其參數映射的信息:

·ON_PARSE_COMMAND

·ON_PARSE_COMMAND_PARAMS

·DEFAULT_PARSE_COMMAND

#include <afxisapi.h>

CHttpServer類的成員

構造函式

CHttpServer 構造一個CHttpServer對象

可覆蓋的函式

CallFunction 在URL中查找並執行與命令有關的適當函式
OnParseError構造返回給客戶的錯誤描述
OnWriteBody向客戶機寫數據
HttpExtensionProc使用回調函式讀取客戶數據並決定採取什麼操作
GetExtensionVersion獲取DLL所基於的版本號
ConstructStream構造一個CHtmlStream對象
TerminateExtension提供一種安全的方法,清除執行緒並完成其它關機動作

屬性

StartContent 將HTML標記插入到返回給客戶的CHtmlStream對象中。覆蓋以改變或省略預設標記
EndContent將HTML標記插入到返回給客戶的CHtmlStream對象中。覆蓋以改變或省略預設標記
WriteTitle在返回給客戶的CHtmlStream對象中的適當HTML標記之間插入標題。覆蓋以提供不同標題
GetTitle獲取傳送給客戶的HTML的標題
AddHeader在回答傳送給伺服器之前添加標題
InitInstance初始化CHttpServer對象

相關詞條

相關搜尋

熱門詞條

聯絡我們