Internet 服务端口测试程序的设计与实现.docx_第1页
Internet 服务端口测试程序的设计与实现.docx_第2页
Internet 服务端口测试程序的设计与实现.docx_第3页
Internet 服务端口测试程序的设计与实现.docx_第4页
Internet 服务端口测试程序的设计与实现.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Internet 服 务 端 口 测 试 程 序 的 设 计 与 实 现 - 一、 程 序 的 实 用 背 景 - 上 网 的 朋 友 越 来 越 多, 遇 到 的 问 题 也 越 来 越 多, 最 常 见 的 就 是 关 于 域 名 服 务 器(DNS)、 邮 件 服 务(SMTP) 和POP3 的 配 置 问 题。 例 如, 选 用 哪 一 个DNS,33 还 是43 ? 记 不 清ISP 的 邮 件 服 务 器 和 域 名 服 务 器 的IP 地 址,43 还 是245 ? - 另 外 一 个 问 题 就 是, 我 们 在 下 载 文 件 的 时 候, 往 往 面 临 从 多 个 不 同 主 机 下 载 的 选 择( 象sunsite 有 数 十 个 镜 像 站 点)。 那 么, 选 择 哪 一 个 站 点 进 行 下 载 是 最 快 的 呢 ? - 笔 者 为 此 编 写 了 一 个 应 用 程 序, 试 图 对Internet 的 常 用 的 网 络 通 信 端 口( 如Web、Email、FTP 等) 进 行 连 接 测 试, 获 得 服 务 端 口 的 状 态 和 响 应 时 间 指 标, 从 而 为 我 们 更 有 效 的 使 用Internet 提 供 准 确 的 参 考 数 据。 笔 者 为 该 程 序 命 名 为Tester( 测 试 者), 从 后 面 叙 述 不 难 发 现,Tester 还 可 以 作 为 简 单 的Internet 系 统 性 能 测 试 工 具 来 使 用。 - 虽 然Tester 也 涉 及 了 其 它 的 编 程 方 法, 但 就 总 体 而 言,Tester 属 于Socket 应 用 程 序。 所 以 我 们 先 从Socket 编 程 的 模 型 入 手, 介 绍Tester 程 序 的 设 计 与 实 现。 - 二、 Socket 编 程 模 型 - Socket 是 网 络 通 信 的 一 个 端 点。 我 们 知 道, 网 络 通 信 通 常 指 两 台 主 机 或 两 个 进 程, 通 过 网 络 传 递 它 们 之 间 的 数 据, 这 样 的 过 程 可 以 理 解 为 网 络 的 一 次 对 话(Session)。 网 络 对 话 的 每 一 端 就 成 为 网 络 通 信 的 端 点, 即 网 络 通 信 实 体 的 最 小 单 位。 当 使 用Socket 接 口 对 网 络 通 信 编 程 时,Socket 是 网 络 通 信 过 程 中 端 点 的 抽 象 表 示。 大 多 数 网 络 通 信 采 用 客 户/ 服 务 器 模 型, 客 户/ 服 务 器 模 型 按 照 端 点 的 工 作 性 质 来 区 分 通 信 双 方 的 端 点。 例 如, 客 户/ 服 务 器 模 型 将 启 动 网 络 服 务 请 求 的 端 点 视 作 客 户 进 程 或 客 户 程 序; 对 客 户 请 求 作 出 响 应 的 端 点 是 服 务 器 进 程 或 服 务 器 程 序。 - 为 了 进 行 网 络 通 信, 程 序 在 网 络 的 对 话 的 每 一 端 都 需 要 一 个Socket, 即 客 户 端 的Socket 和 服 务 器 端 的Socket。 两 个Socket 之 间 的 连 接 可 以 是 面 向 连 接 的 也 可 以 是 无 连 接 的。 虽 然 从 目 前 看,Socket 编 程 已 经 不 再 局 限 于UNIX 系 统, 但 是Socket 接 口 在 网 络 通 信 时 仍 然 使 用UNIX 系 统I/O 概 念,Socket 接 口 模 型 仍 然 采 用Open-Read-Write-Close 方 式。 Socket 编 程 的 包 括 几 个 主 要 步 骤: - 1、 建 立Socket; - 2、 配 置Socket; - 3、 通 过Socket 发 送 数 据; - 4、 通 过Socket 接 收 数 据; - 5、 关 闭Socket。 - 三、 CSocket 编 程 模 型 - 对 于 网 络 通 信 编 程 的 初 学 者 来 说, 直 接 使 用 上 述 的socket 模 型 会 感 觉 困 难 和 复 杂。Visual C+ 的MFC( 基 础 类 库) 提 供 了 一 些 封 装 好 的 对 象 可 供 使 用, 这 些 对 象 的 概 念 相 对 简 单, 编 程 相 对 容 易。Tester 程 序 就 是 使 用MFC 的 几 个 与socket 相 关 的 类 来 实 现 的。 - 在 服 务 器Socket 和 客 户Socket 之 间 建 立 通 信 的 过 程 如 下 文 所 述。 - 1、 创 建CSocket 对 象。 - 2、 使 用 该 对 象 产 生SOCKET 句 柄。 - 3、 如 果socket 是 客 户, 调 用CAsyncSocket:Connect, 连 接 本 地 的Socket 和 服 务 器Socket; - 如 果socket 是 服 务 器, 调 用CAsyncSocket:Listen, 开 始 侦 听 从 客 户 端 来 的 访 问 请 求, 如 果 收 到 请 求, 调 用CAsyncSocket:Accept 进 行 接 收 处 理。 - 4、 建 立CSocketFile 对 象, 并 且 使 该 对 象 与CSocket 对 象 具 备 一 定 的 联 系; - 5、 建 立CArchive 对 象, 以 便 实 现 卸 装( 接 收) 数 据 和 存 储( 发 送) 数 据 的 目 的。 当 然, 该CArchive 对 象 应 该 与 前 面 的CSocketFile 对 象 建 立 联 系; - 6、 使 用CArchive 对 象 在 客 户 和 服 务 器socket 之 间 传 递 数 据, 从 而 实 现 服 务 器socket 和 客 户 机socket 之 间 的 通 信。 值 得 注 意 的 是, 一 个 给 定 的CArchive 对 象 只 能 在 单 一 的 方 向 上 传 递 数 据: 或 者 接 收 或 者 发 送。 一 般 情 况 下, 可 能 需 要 两 个CArchive 对 象 来 实 现 数 据 的 双 向 传 递。 - 7、 解 析archive、socket file、socket 对 象。 - 四、 程 序 的 实 现 - 简 单 地 讲, 对 于 程 序 的 实 现, 笔 者 主 要 考 虑 了 三 部 分 的 内 容:Socket、 时 钟 以 及 界 面。 - Socket( 网 络 通 信 实 体) - Tester 作 为 一 个 客 户 端 的socket 通 信 程 序, 包 括TestSocket(Csocket 派 生 类)、TestSocketFile(CSocketFile 派 生 类) 和TestArchiveIn、TestArchiveOut(CArchive 派 生 类) 等。 这 些 对 象 的 建 立 和 使 用 与 上 述 的CSocket 编 程 模 型 相 同。 - 时 钟( 用 于 测 试 网 络 上Internet 服 务 端 口 的 响 应 时 间) - Tester 在Socket 连 接 建 立 的 前 后 分 别 调 用clock 系 统 函 数, 从 而 可 以 利 用 二 者 的 相 对 差 别 获 得 绝 对 时 间 参 数。clock 函 数 可 以 获 得 某 一 系 统 调 用 过 程 所 耗 费 的 时 间。clock 函 数 的 返 回 值 是 处 理 器 的 计 时 单 位 次 数。Tester 的 时 间 单 位 是 毫 秒。 ./ 其 它 代 码clock_t start = clock();if (m_pSocket- Connect(lpszAddress, nPort)clock_t end = clock();./ 其 它 代 码 elseclock_t end = clock();./ 其 它 代 码./ 其 它 程 序 段- 从 程 序 中 可 以 看 出,Tester 记 录 的 响 应 时 间, 是 指 处 理 器 在 整 个 网 络 通 信 的 连 接 建 立 过 程 中 的 响 应 时 间。 这 一 结 果 和 网 络 状 况、 服 务 器 端 的 响 应 时 间、 本 地 系 统 的 性 能 均 有 关 系。 实 际 上, 网 络 用 户 在 实 际 应 用 过 程 中 真 正 的 时 间 延 迟, 就 是 上 述 各 个 因 素 的 总 和。 另 外,Tester 的 响 应 时 间 结 果 是10 次 测 试 的 平 均 数。 所 以,Tester 测 试 的 是 整 个 网 络 应 用 的 响 应 时 间, 是 综 合 的 指 标。 - 界 面( 与 程 序 使 用 者 进 行 交 互, 指 令 的 输 入 和 结 果 的 输 出) - 1、 输 入 部 分 - Tester 使 用 了 对 话 框 对 象:SetupDlg:CDialog, 在 对 话 框 中, 使 用Check、Edit 等 控 制 件, 并 且 通 过 这 些 控 制 向 程 序 传 递 使 用 者 所 指 示 的 测 试 信 息。 - 2、 输 出 部 分 - Tester 是 单 文 档 界 面(SDI) 的 应 用 程 序。 窗 口 风 格 见 下 面 程 序 段: ./ 其 它 代 码CEditView:PreCreateWindow(cs);cs.style = AFX_WS_DEFAULT_VIEW | WS_VSCROLL | ES_AUTOHSCROLL |ES_AUTOVSCROLL | ES_MULTILINE | ES_NOHIDESEL | ES_READONLY;./ 其 它 代 码- 利 用Tester 的 菜 单 功 能 可 以 把 每 次 的 测 试 结 果 存 为 纯 文 本 格 式 的 文 件。 - 五、 程 序 的 应 用 举 例 - Tester 对 于 熟 悉Internet 应 用 的 使 用 者 来 说, 界 面 一 目 了 然, 操 作 十 分 简 单。 首 先, 使 用 者 根 据 测 试 需 要 填 写 参 数 设 置 对 话 框; 确 认 后, 由Tester 程 序 自 动 执 行 测 试 工 作, 并 将 测 试 结 果 显 示 于Tester 窗 口 中。 同 时, 用 户 也 可 以 将 测 试 结 果 存 为 文 本 文 件。 - Tester 的 用 户 可 以 自 定 义 一 些 服 务 端 口 进 行 测 试( 例 如, 对 话 框 中 没 有 列 出 的Gopher 等Internet 服 务)。 当 然, 在 这 种 情 况 下, 用 户 必 须 知 道 被 测 试 的 服 务 的Socket 端 口 号。 - 下 面 给 出 几 个 测 试 结 果 文 件, 仅 供 参 考( 笔 者 经 由2631 拨 号 上 网 进 行 测 试)。 被 测 主 机:163.net 测 试 时 间:10:37, June 09, 1998 Internet 服 务 状 态 响 应 时 间(ms) - FTP OFF SMTP ON 2030 DNS OFF POP3 ON 1050 HTTP ON 380 被 测 主 机: 测 试 时 间:10:38, June 09, 1998 Internet 服 务 状 态 响 应 时 间(ms) - FTP OFF SMTP ON 3670 POP3 ON 720 HTTP OFF 被 测 主 机: 测 试 时 间:10:38, June 09, 1998 Internet 服 务 状 态 响 应 时 间(ms) - FTP OFF TELNET OFF SMTP OFF DNS OFF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论