`
阿尔萨斯
  • 浏览: 4168302 次
社区版块
存档分类
最新评论

Internet 服 务 端 口 测 试 程 序 的 设 计 与 实 现

 
阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>

 

 

Internet 服 务 端 口 测 试 程 序 的 设 计 与 实 现

 


----

程 序 的 实 用 背 景

---- 当 前, 上 网 的 朋 友 越 来 越 多, 遇 到 的 问 题 也 越 来 越 多, 最 常 见 的 就 是 关 于 域 名 服 务 器(DNS)、 邮 件 服 务(SMTP) 和POP3 等 服 务 器 的 配 置 问 题。 例 如, 选 用 哪 一 个DNS,202.96.0.133 还 是202.96.26.243 ? 记 不 清ISP 的 邮 件 服 务 器 和 域 名 服 务 器 的IP 地 址,202.96.26.243 还 是202.96.26.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 编 程 的 包 括 以 下 几 个 主 要 步 骤: 建 立Socket → 配 置Socket → 通 过Socket 发 送 数 据 → 通 过Socket 接 收 数 据 → 关 闭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 对 象。

---- 上 述 内 容 图 示 如 下:


Client Server

程 序 的 实 现

---- 简 单 地 讲, 对 于 程 序 的 实 现, 笔 者 主 要 考 虑 了 三 部 分 的 内 容:Socket、 时 钟 以 及 界 面。

---- 1.Socket( 网 络 通 信 实 体)

---- Tester 作 为 一 个 客 户 端 的Socket 通 信 程 序, 包 括TestSocket(CSocket 派 生 类)、TestSocketFile(CSocketFile 派 生 类) 和TestArchiveIn、TestArchiveOut(CArchive 派 生 类) 等。 这 些 对 象 的 建 立 和 使 用 与 上 述CSocket 编 程 模 型 相 同。

---- 2. 时 钟( 用 于 测 试 网 络 上Internet 服 务 端 口 的 响 应 时 间)

---- Tester 在Socket 连 接 建 立 的 前 后 分 别 调 用clock 系 统 函 数, 从 而 可 以 利 用 二 者 的 相 对 差 别 获 得 绝 对 时 间 参 数。clock 函 数 可 以 获 得 某 一 系 统 调 用 过 程 所 耗 费 的 时 间, 其 返 回 值 是 处 理 器 的 计 时 单 位 次 数。Tester 的 时 间 单 位 是 毫 秒。

---- .... / / 其 它 代 码

---- clock-t start=clock();

---- if(m-pSocket ->Connect(lpszAddress,nPort))

---- {

-------- clock-t end=clock();

-------- … … / / 其 它 代 码

---- }

---- else

---- {

-------- clock-t end=clock();

-------- … … / / 其 它 代 码

---- }

---- … … / / 其 它 代 码

---- 从 程 序 中 可 以 看 出,Tester 记 录 的 响 应 时 间, 是 指 处 理 器 在 整 个 网 络 通 信 的 连 接 建 立 过 程 中 的 响 应 时 间。 这 一 结 果 和 网 络 状 况、 服 务 器 端 的 响 应 时 间、 本 地 系 统 的 性 能 均 有 关 系。 实 际 上, 网 络 用 户 在 实 际 应 用 过 程 中 真 正 的 时 间 延 迟, 就 是 上 述 各 个 因 素 的 总 和。 另 外,Tester 的 响 应 时 间 结 果 是10 次 测 试 的 平 均 数。 所 以,Tester 测 试 的 是 整 个 网 络 应 用 的 响 应 时 间, 是 综 合 的 指 标。

---- 3. 界 面( 与 程 序 使 用 者 进 行 交 互, 指 令 的 输 入 和 结 果 的 输 出)

---- (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 拨 号 上 网 进 行 测 试)。

---- 下 面 给 出 几 个 测 试 结 果 文 件,仅 供 参 考(笔 者 经 由2631 拨 号 上 网 进 行 测 试 )。

     被测主机:163.net     测试时间:10:37, June 09, 1998    Internet服务             状态                 响应时间(ms)    --------------------------------------------------------------     FTP                         OFF                        SMTP                      ON                    2030     DNS                        OFF                        POP3                      ON                    1050     HTTP                      ON                    380     被测主机:ihw.com.cn     测试时间:10:38, June 09, 1998    Internet服务             状态                 响应时间(ms)    --------------------------------------------------------------     FTP                         OFF                        SMTP                     ON                     3670     POP3                      ON                     720     HTTP                      OFF                        被测主机:www.yahoo.com     测试时间:10:38, June 09, 1998    Internet服务             状态                 响应时间(ms)    --------------------------------------------------------------     FTP                         OFF                        TELNET                 OFF                        SMTP                      OFF                        DNS                        OFF                        POP3                      OFF                        HTTP                      ON                    1700     被测主机:www.microsoft.com     测试时间:10:39, June 09, 1998    Internet服务             状态                 响应时间(ms)    --------------------------------------------------------------     FTP                         OFF                        TELNET                 OFF                        SMTP                      OFF                        DNS                        OFF                        POP3                      OFF                        HTTP                      ON                    930     被测主机:www.asia.microsoft.com     测试时间:10:39, June 09, 1998    Internet服务             状态                 响应时间(ms)    --------------------------------------------------------------     HTTP                      ON                     650

----


 




分享到:
评论

相关推荐

    各种测试模板(计划、报告、测试矩阵等等)

    E4:测试计划(客户服务器架构和因特网螺旋测试); E5:功能测试矩阵; E6:图形用户界面组件测试矩阵(客户服务器及因特网螺旋测试); E8:测试用例; E9:测试用例日志; E10:测试日志总结报告

    网站测试流程说明.doc

    基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而...

    Web网站测试方法指导

    基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,...

    中国电信TR069测试指导.doc

    5.8 建立INTERNET桥接WAN连接并绑定到LAN口 40 5.9 建立other桥接WAN连接并绑定到LAN口 43 5.10 建立PPPoE 方式WAN连接 44 5.11 建立静态IP 方式WAN连接 45 5.12 建立 DHCP方式WAN连接 46 5.13 配置静态IP方式...

    WEB测试手册

    基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,...

    网上购物系统单元测试.doc

    基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战。基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适。...

    Web测试方法

    基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证 是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而, ...

    基于Web系统的测试方法

    基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,...

    web测试的总结

    基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,...

    java基础入门教程

    从 软 件的 设 计 风 格 、 设计 方 法 、 设 计 目 标 到 设 计 过 程 ,都 会 产 生 彻 底 的 变 革 ,"甚 至 会改 变 此 星 球 的 生活 方 式 "。 在 这 次 会 上 ,Java的 创 始 人 之 一 James Gosling 说 :...

    Web系统的安全性测试之文件和目录测试

    随着因特网的不断发展,人们对网络的使用越来越频繁,通过网络进行购物、支付等其他业务操作。而一个潜在的问题是网络的安全性如何保证,一些黑客利用站点安全性的漏洞来窃取用户的信息,使用户的个人信息泄漏,所以...

    性能测试基础

    基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,...

    网络课程在线测试系统的设计与实现

    摘要:随着INTERNET 的蓬勃发展,网络学习成为未来学习的主要形式,伴随着网络课程的开设,许 多新的问题摆在眼前,其中之一是,学习者和教师如何通过网络了解学员的学习状况? 从而及时改 变学习策略. 为此,配合网络课程...

    web测试总结.docx

    基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证 是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然 而,...

    iSCSI型存储服务器测试报告

    iSCSI就是能让NAS增强战斗力的援军,它在目前分布最为广泛的Ethernet/Internet环境中,以TCP/IP封包SCSI指令 及数据进行传输,可以构成IP SAN。因此,为NAS设备加入iSCSI支持简直是举手之劳,而所得到的是同时提供...

    《计算机网络》第06章在线测试.pdf

    《计算机网络》第06章在线测试.pdf《计算机网络》第06章在线测试.pdf《计算机网络》第06章在线测试.pdf《计算机网络》第06章在线测试.pdf《计算机网络》第06章在线测试.pdf《计算机网络》第06章在线测试.pdf《计算机...

    c# 检测Internet连接(包括物理联网和检测ISP连接)

    检测Internet连接状态,包括检测物理联网(网线是否接好,网卡是否能顺利工作)和检测是否能够实现获得 Internet 服务,即是否能和 ISP 进行Internet连接。

    电子功用-带有因特网协议寻址群集的无线电通信测试系统

    行业资料-电子功用-带有因特网协议寻址群集的无线电通信测试系统

    Delphi编程技巧.rar

    一 个 实 用 的Delphi 屏 幕 拷 贝 程 序 的 设 计 用Delphi制作动态菜单 用Delphi进行OpenGL编程学习心得 开 发 基 于ORACLE7 数 据 库 的 管 理 信 息 系 统 用Delphi 实 现 自 定 义 颜 色 对 话 框 及 ...

Global site tag (gtag.js) - Google Analytics