网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
ISAPI与CGI的比较及其实现
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
请 求 后 不 会 马 上 消 失, 而 是 继 续 驻 留 在 内 存 中 等 待 处 理 别 的 用 户 输 入, 直 到 过 了 一 段 时 间 后 一 直 没 有 用 户 输 入。

         4.5 ISAPI 性 能 评 价

         一 个ISAPI 的DLL, 可 以 在 被 用 户 请 求 激 活 后 长 驻 内 存, 等 待 用 户 的 另 一 个 请 求, 还 可 以 在 一 个DLL 里 设 置 多 个 用 户 请 求 处 理 函 数, 此 外,ISAPI 的DLL 应 用 程 序 和WWW 服 务 器 处 于 同 一 个 进 程 中, 效 率 要 显 著 高 于CGI。

         不 过ISAPI 的 平 台 兼 容 性 较 差, 目 前 只 能 用 于 微 软 自 己 的Windows 95 和NT 操 作 系 统 上, 服 务 器 平 台 也 仅 限 于IIS(Internet Information Server) 和MS personal web server 以 及NT workstation 上 的peer web server。

五、ISAPI 的 实 现
         能 够 支 持ISAPI 开 发 的 平 台 只 有 微 软 的 几 个 平 台 组 合( 如NT+IIS,WIN95+MS personal web server)。 因 此 开 发ISAPI 只 能 这 几 个 平 台 上。 开 发 语 言 前 已 有 述, 这 里 向 大 家 推 荐Visual C++ 4.2 版, 它 的Wizard 提 供 了 专 门 制 作ISAPI 的 功 能 项。

         下 面 是 个 简 单 的 例 子, 功 能 是 将 用 户 从 浏 览 器 上 的 输 入 简 单 地 回 显 给 用 户, 功 能 简 单, 但 是 具 备 一 个 典 型 的ISAPI 全 部 流 程。 源 程 序 如 下( 大 部 分 为Wizard 生 成 的 代 码):

1. 主 程 序:
// ISAPI1.CPP - Implementation file for your Internet Server
#include "stdafx.h"
#include "isapi1.h"
///////////////////////////////////////////////////////////////////////
// The one and only CWinApp object
// NOTE: You may remove this object if you alter your project to no
// longer use MFC in a DLL.
CWinApp theApp;
///////////////////////////////////////////////////////////////////////
// command-parsing map
BEGIN_PARSE_MAP(CIsapi1Extension, CHttpServer)
/************* My codes begin here ***********/
ON_PARSE_COMMAND(RegisterUser,
CIsapi1Extension, ITS_PSTR ITS_PSTR ITS_PSTR)
ON_PARSE_COMMAND_PARAMS("First Middle Last")
/************* My codes end here ***********/
END_PARSE_MAP(CIsapi1Extension)

///////////////////////////////////////////////////////////////////////
// The one and only CIsapi1Extension object

CIsapi1Extension theExtension;

///////////////////////////////////////////////////////////////////////
// CIsapi1Extension implementation

CIsapi1Extension::CIsapi1Extension()
{
}

CIsapi1Extension::~CIsapi1Extension()
{
}

BOOL CIsapi1Extension::GetExtensionVersion
           (HSE_VERSION_INFO* pVer)
{
// Call default implementation for initialization
CHttpServer::GetExtensionVersion(pVer);

// Load description string
TCHAR sz[HSE_MAX_EXT_DLL_NAME_LEN+1];
ISAPIVERIFY(::LoadString(AfxGetResourceHandle(),
IDS_SERVER, sz, HSE_MAX_EXT_DLL_NAME_LEN));
_tcscpy(pVer->lpszExtensionDesc, sz);
return TRUE;
}

///////////////////////////////////////////////////////////////////////
// CIsapi1Ex

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号