189.A网络即时通信系统的设计 毕业设计说明书

上传人:仙*** 文档编号:28425066 上传时间:2021-08-28 格式:DOC 页数:39 大小:466.56KB
返回 下载 相关 举报
189.A网络即时通信系统的设计 毕业设计说明书_第1页
第1页 / 共39页
189.A网络即时通信系统的设计 毕业设计说明书_第2页
第2页 / 共39页
189.A网络即时通信系统的设计 毕业设计说明书_第3页
第3页 / 共39页
点击查看更多>>
资源描述
本科毕业设计说明书 本 文 源 码 索 取 , 请 联 系 qq: 68661508 二 一 年 六 月 学校代码: XXX 学 号: XXX 题 目 : 网络即时通信系统的设计 学 生 姓 名 : XXX 学 院 : 信 息 工 程 学 院 系 别 : 计 算 机 系 专 业 : 软 件 工 程 班 级 : 软 件 06 指 导 教 师 : XXX 讲 师 XXX 工业大学本科毕业设计说明书 摘 要 随着科学技术的迅速提高,计算机网络得到了飞速的发展,而各种基于网络的 应用程序也随之诞生,比如基于互联网的信息发布,通信,数据共享等等。局域网 技术作为人们日常生活中必不可少的部分同样得到了广泛的应用,人们通过局域网 连接 Internet进行数据传输及交换。因此开发一个局域网的即时通信工具是非常 有必要的。 本文围绕这个中心并进行了更为合理的设计在Windows平台上进行了实现。将客 户端与服务端分开,用UDP与TCP/IP协议实现不同的传输任务,还运用了套接字技术。 能够满足一般用户最基本的要求,特点是简单方便、 功能齐全、 拓展性强。 本即时通信系统采用模块化程序设计方法,基于C/S架构,运用文件形式存储。 本系统充分利用了Visual C+开发工具,具备用户的登录、申请、发送消息、发送 文件、查看用户在离线等功能,可以实现用户信息管理,方便了用户之间信息的沟 通。 关键词: 即时通信; C/S; UDP; TCP/IP; 套接字 XXX 工业大学本科毕业设计说明书 Abstract With the rapid increase of science and technology, computer network has made rapid development, and a variety of Web-based applications have come about, such as Internet- based information dissemination, communication, data sharing, etc. LAN technology as an essential part of daily life, are also widely used local area network to connect people through the Internet for data transfer and exchange. Therefore the development of a LAN instant messaging tool is necessary. This text has realized on Windows platform more rational design around this centre. Separate customer end from end of service, realize different transmission tasks with UDP and TCP/IP agreement, have also used set to windows sockets technology. Can meet the general users most basic requirement, it is simple and convenient, multiple functional that the characteristic is, the expanding is strong. The instant messaging system uses the modular programming method, based on C/S architecture, the use of files stored. The system makes full use of Visual C+ development tool, have the user login, application, send messages, send files, view the users and other functions, can realize the user information management, and convenient for users to communicate information between . Keywords: instant messaging; C / S; UDP; TCP / IP ;W indows Sockets XXX 工业大学本科毕业设计说明书 目 录 引 言 .1 第一章 开发工具及系统架构简介 .3 1.1 C/S 结构简介 .3 1.2 SOCKET技术简介 .3 1.3 CSOCKET .4 1.4 套接字简介 .4 1.4.1 连接方式 .4 1.4.2 主要参数 .5 1.5 TCP/IP 简介 .5 1.6 UDP 简介 .6 1.7 即时通信系统简介 .7 1.7.1 系统的网络环境 .7 1.7.2 数据存储系统 .7 1.7.3 网络协议 .7 第二章 系统分析与设计 .8 2.1 即时通信系统简介 .8 2.2 即时通信系统作用 .8 2.3 网络即时通信系统需求分析 .9 2.4 环境拓扑 .10 2.5 开发与测试 .10 第三章 系统的实现 .11 3.1 程序设计目的 .11 3.2 程序有关连接及端口信息 .12 3.3 用户使用说明 .13 3.4 其他部分代码 .17 3.5 其他算法的改进方法 .21 第四章 即时通信系统的测试报告 .22 XXX 工业大学本科毕业设计说明书 4.1 测试结论 .22 4.2 测试环境 .22 4.3 功能测试 .22 4.4 测试结果 .27 总 结 .28 参考文献 .30 谢 辞 .31 XXX 工业大学本科毕业设计说明书 0 引 言 1.项目背景 随 着 移 动 互 联 网 的 发 展 , 互 联 网 即 时 通 信 也 在 向 移 动 化 扩 张 。 目 前 , 微 软 、 AOL、 Yahoo、 、 UcSTAR等 重 要 即 时 通 信 提 供 商 都 提 供 通 过 手 机 接 入 互 联 网 即 时 通 信 的 业 务 , 用 户 可 以 通 过 手 机 与 其 他 已 经 安 装 了 相 应 客 户 端 软 件 的 手 机 或 电 脑 收 发 消 息 。 产 品 最 早 的 创 始 人 是 三 个 以 色 列 青 年 , 是 他 们 在 1996年 做 出 来 的 , 取 名 叫 ICQ。 1998年 当 ICQ注 册 用 户 数 达 到 1200万 时 , 被 AOL看 中 , 以 2.87亿 美 元 的 天 价 买 走 。 目 前 ICQ有 1亿 多 用 户 , 主 要 市 场 在 美 洲 和 欧 洲 , 已 成 为 世 界 上 最 大 的 即 时 通 信 系 统 。 现 在 国 内 的 即 时 通 信 工 具 按 照 使 用 对 象 分 为 两 类 : 一 类 是 个 人 IM, 如 : QQ。 QQ的 前 身 OICQ在 1999年 2月 第 一 次 推 出 , 目 前 几 乎 接 近 垄 断 中 国 在 线 即 时 通 讯 软 件 市 场 ; 另 一 类 是 企 业 用 IM, 简 称 EIM, 如 : E话 通 , UC, EC企 业 即 时 通 信 软 件 , UcSTAR、 商 务 通 等 。 即 时 通 信 最 初 是 由 AOL、 微 软 、 雅 虎 、 腾 讯 等 独 立 于 电 信 运 营 商 的 即 时 通 信 服 务 商 提 供 的 。 但 随 着 其 功 能 日 益 丰 富 、 应 用 日 益 广 泛 , 特 别 是 即 时 通 信 增 强 软 件 的 某 些 功 能 如 IP电 话 等 , 已 经 在 分 流 和 替 代 传 统 的 电 信 业 务 , 使 得 电 信 运 营 商 不 得 不 采 取 措 施 应 对 这 种 挑 战 。 2006年 6月 , 中 国 移 动 已 经 推 出 了 自 己 的 即 时 通 信 工 具 Fetion, 中 国 联 通 也 将 推 出 即 时 通 讯 工 具 “超 信 ”, 但 由 于 进 入 市 场 较 晚 , 其 用 户 规 模 和 品 牌 知 名 度 还 比 不 上 原 有 的 即 时 通 信 服 务 提 供 商 。 2.项目意义 随着网络的发展,越来越多的人们开始以电子通信的方式实现交流的时候,便 形成了一个提供即时通信服务的经营和市场环境,这是一个全新的竞争激烈的国际 化市场。为适应这种新的经营环境,应对来自全球竞争者的挑战。 互 联 网 即 时 通 信 有 点 像 手 机 无 线 通 信 : 它 们 最 初 都 局 限 在 小 圈 子 内 作 为 少 数 人 的 玩 物 而 屡 遭 诟 病 。 不 过 , 它 们 注 定 要 超 越 传 统 通 信 方 式 而 成 为 主 流 通 信 手 段 。 如 今 , 即 使 通 信 的 飞 速 发 展 与 普 及 令 所 有 预 期 者 大 跌 眼 镜 。 不 过 , 快 速 普 及 、 跻 身 主 流 还 只 是 即 时 通 信 发 展 的 第 一 步 , 接 下 来 要 走 的 也 许 是 更 重 要 的 一 步 统 一 标 准 、 决 战 市 场 。 即 时 通 信 ( IM) 工 具 大 浪 淘 沙 , 曾 几 何 时 , 当 初 风 风 火 火 的 一 大 批 即 时 通 信 XXX 工业大学本科毕业设计说明书 1 工 具 , 由 于 各 操 方 言 , 彼 此 不 通 , 诸 侯 割 据 市 场 , 如 今 大 多 数 已 经 折 戟 沉 沙 。 如 今 IM 市 场 天 下 一 统 , 基 本 市 场 格 局 已 经 定 型 。 在 全 球 , MSN Messenger 已 成 为 即 时 通 信 市 场 当 之 无 愧 的 王 者 , 美 国 在 线 AOL 的 Instant Messenger( 以 及 被 其 收 购 旗 下 的 即 时 通 信 鼻 祖 ICQ) 元 气 大 伤 , 沦 落 到 要 依 傍 法 律 为 武 器 , 同 中 国 的 QQ 争 夺 名 分 的 地 步 ; Yahoo Messenger 偏 安 一 隅 。 MSN 携 微 软 巨 无 霸 强 大 的 Windows 操 作 软 件 市 场 优 势 , 逐 渐 成 为 桌 面 PC 的 标 准 配 置 , 注 册 用 户 数 量 超 过 了 1.1 亿 户 。 3. 性能设计 在最近几年中计算机越来越多的活跃在社会的各个领域:管理、网络、计算、 控制、多媒体等,并且在某些方面成为不可缺少的工具,尤其在管理方面,管理软 件的出现使大量烦琐复杂的问题变得简单易行,本软件的设计考虑以上因素制作, 本着以最通俗的语言,最简单的操作,最快捷的设计方案而开发制作而成,可以很 好的对现有的商品进行规范,高效的管理,本系统主要运用了 Visual C+ 6.0 开发 工具开发而成,该工具具有卓越的性能、简洁规范的用户界面、可视化的编程环境、 简单易懂的 C+编程语言,用较少的代码可以实现大量繁琐复杂问题的功能,是初 级程序开发人员的理想选择。 XXX 工业大学本科毕业设计说明书 2 第一章 开发工具及系统架构简介 1.1 C/S 结构简介 C/S( Client/Server) 结 构 , 即 大 家 熟 知 的 客 户 机 和 服 务 器 结 构 。 它 是 软 件 系 统 体 系 结 构 , 通 过 它 可 以 充 分 利 用 两 端 硬 件 环 境 的 优 势 , 将 任 务 合 理 分 配 到 Client 端 和 Server 端 来 实 现 , 降 低 了 系 统 的 通 讯 开 销 。 目 前 大 多 数 应 用 软 件 系 统 都 是 Client/Server 形 式 的 两 层 结 构 , 由 于 现 在 的 软 件 应 用 系 统 正 在 向 分 布 式 的 Web 应 用 发 展 , Web 和 Client/Server 应 用 都 可 以 进 行 同 样 的 业 务 处 理 , 应 用 不 同 的 模 块 共 享 逻 辑 组 件 ; 因 此 , 内 部 的 和 外 部 的 用 户 都 可 以 访 问 新 的 和 现 有 的 应 用 系 统 , 通 过 现 有 应 用 系 统 中 的 逻 辑 可 以 扩 展 出 新 的 应 用 系 统 。 这 也 就 是 目 前 应 用 系 统 的 发 展 方 向 。 传 统 的 C S 体 系 结 构 虽 然 采 用 的 是 开 放 模 式 , 但 这 只 是 系 统 开 发 一 级 的 开 放 性 , 在 特 定 的 应 用 中 无 论 是 Client 端 还 是 Server 端 都 还 需 要 特 定 的 软 件 支 持 。 由 于 没 能 提 供 用 户 真 正 期 望 的 开 放 环 境 , C/S 结 构 的 软 件 需 要 针 对 不 同 的 操 作 系 统 系 统 开 发 不 同 版 本 的 软 件 , 加 之 产 品 的 更 新 换 代 十 分 快 , 已 经 很 难 适 应 百 台 电 脑 以 上 局 域 网 用 户 同 时 使 用 , 而 且 代 价 高 , 效 率 低 。 1.2 Socket 技术简介 socket 的 英 文 原 义 是 “孔 ”或 “插 座 ”。 在 这 里 作 为 4BDS UNIX 的 进 程 通 信 机 制 , 取 后 一 种 意 思 。 socket 非 常 类 似 于 电 话 插 座 。 以 一 个 国 家 级 电 话 网 为 例 。 电 话 的 通 话 双 方 相 当 于 相 互 通 信 的 2 个 进 程 , 区 号 是 它 的 网 络 地 址 ; 区 内 一 个 单 位 的 交 换 机 相 当 于 一 台 主 机 , 主 机 分 配 给 每 个 用 户 的 局 内 号 码 相 当 于 socket 号 。 任 何 用 户 在 通 话 之 前 , 首 先 要 占 有 一 部 电 话 机 , 相 当 于 申 请 一 个 socket; 同 时 要 知 道 对 方 的 号 码 , 相 当 于 对 方 有 一 个 固 定 的 socket。 然 后 向 对 方 拨 号 呼 叫 , 相 当 于 发 出 连 接 请 求 (假 如 对 方 不 在 同 一 区 内 , 还 要 拨 对 方 区 号 , 相 当 于 给 出 网 络 地 址 )。 对 方 假 如 在 场 并 空 闲 (相 当 于 通 信 的 另 一 主 机 开 机 且 可 以 接 受 连 接 请 求 ), 拿 起 电 话 话 筒 , 双 方 就 可 以 正 式 通 话 , 相 当 于 连 接 成 功 。 双 方 通 话 的 过 程 , 是 一 方 向 电 话 机 发 出 信 号 和 对 方 从 电 话 机 接 收 信 号 的 过 程 , 相 当 于 向 socket 发 送 数 XXX 工业大学本科毕业设计说明书 3 据 和 从 socket 接 收 数 据 。 通 话 结 束 后 , 一 方 挂 起 电 话 机 相 当 于 关 闭 socket, 撤 消 连 接 。 1.3 CSocket CSocket 是 MFC 在 CAsyncSocket 基 础 上 派 生 的 一 个 同 步 阻 塞 Socket 的 封 装 类 。 它 是 如 何 又 把 CAsyncSocket 变 成 同 步 的 , 而 且 还 能 响 应 同 样 的 Socket 事 件 呢 ? 其 实 很 简 单 , CSocket 在 Connect()返 回 Wsae would block 错 误 时 , 不 是 在 OnConnect(), OnReceive()这 些 事 件 终 端 函 数 里 去 等 待 。 你 先 必 须 明 白 Socket 事 件 是 如 何 到 达 这 些 事 件 函 数 里 的 。 这 些 事 件 处 理 函 数 是 CSocket Wnd 窗 口 对 象 回 调 的 , 而 窗 口 对 象 收 到 来 自 Socket 的 事 件 , 又 是 靠 线 程 消 息 队 列 分 发 过 来 的 。 总 之 , Socket 事 件 首 先 是 作 为 一 个 消 息 发 给 CSocketWnd 窗 口 对 象 , 这 个 消 息 肯 定 需 要 经 过 线 程 消 息 队 列 的 分 发 , 最 终 CSocketWnd 窗 口 对 象 收 到 这 些 消 息 就 调 用 相 应 的 回 调 函 数 (OnConnect()等 )。 所 以 , CSocket 在 调 用 Connect()之 后 , 如 果 返 回 一 个 Wsae would block 错 误 时 , 它 马 上 调 用 一 个 用 于 提 取 消 息 的 函 数 PumpMessage(), 就 是 从 当 前 线 程 的 消 息 队 列 里 取 得 关 心 的 消 息 。 1.4 套接字简介 套 接 字 , 简 单 的 说 就 是 通 信 的 两 方 的 一 种 约 定 , 用 套 接 字 中 的 相 关 函 数 来 完 成 通 信 过 程 。 1.4.1 连接方式 应 用 层 通 过 传 输 层 进 行 数 据 通 信 时 , TCP 和 UDP 会 遇 到 同 时 为 多 个 应 用 程 序 进 程 提 供 并 发 服 务 的 问 题 。 多 个 TCP 连 接 或 多 个 应 用 程 序 进 程 可 能 需 要 通 过 同 一 个 TCP 协 议 端 口 传 输 数 据 。 为 了 区 别 不 同 的 应 用 程 序 进 程 和 连 接 , 许 多 计 算 机 操 作 系 统 为 应 用 程 序 与 TCP IP 协 议 交 互 提 供 了 称 为 套 接 字 (Socket)的 接 口 。 XXX 工业大学本科毕业设计说明书 4 1.4.2 主要参数 区 分 不 同 应 用 程 序 进 程 间 的 网 络 通 信 和 连 接 , 主 要 有 3 个 参 数 : 通 信 的 目 的 IP 地 址 、 使 用 的 传 输 层 协 议 (TCP 或 UDP)和 使 用 的 端 口 号 。 Socket 原 意 是 “插 座 ”。 通 过 将 这 3 个 参 数 结 合 起 来 , 与 一 个 “插 座 ”Socket 绑 定 , 应 用 层 就 可 以 和 传 输 层 通 过 套 接 字 接 口 , 区 分 来 自 不 同 应 用 程 序 进 程 或 网 络 连 接 的 通 信 , 实 现 数 据 传 输 的 并 发 服 务 。 Socket 可 以 看 成 在 两 个 程 序 进 行 通 讯 连 接 中 的 一 个 端 点 , 是 连 接 应 用 程 序 和 网 络 驱 动 程 序 的 桥 梁 , Socket 在 应 用 程 序 中 创 建 , 通 过 绑 定 与 网 络 驱 动 建 立 关 系 。 此 后 , 应 用 程 序 送 给 Socket 的 数 据 , 由 Socket 交 网 络 驱 动 程 序 向 网 络 上 发 送 出 去 。 计 算 机 从 网 络 上 收 到 与 该 Socket 绑 定 IP 地 址 和 端 口 号 相 关 的 数 据 后 , 由 网 络 驱 动 程 序 交 给 Socket, 应 用 程 序 便 可 从 该 Socket 中 提 取 接 收 到 得 数 据 , 网 络 应 用 程 序 就 是 这 样 通 过 Socket 进 行 数 据 的 发 送 与 接 收 的 。 1.5 TCP/IP 简介 TCP/IP 是 供 已 连 接 因 特 网 的 计 算 机 进 行 通 信 的 通 信 协 议 。 TCP/IP 指 传 输 控 制 协 议 /网 际 协 议 (Transmission Control Protocol / Internet Protocol)。 TCP/IP 定 义 了 电 子 设 备 ( 比 如 计 算 机 ) 如 何 连 入 因 特 网 , 以 及 数 据 如 何 在 它 们 之 间 传 输 的 标 准 。 TCP/IP( 传 输 控 制 协 议 /网 际 协 议 ) 是 互 联 网 中 的 基 本 通 信 语 言 或 协 议 。 在 私 网 中 , 它 也 被 用 作 通 信 协 议 。 当 你 直 接 网 络 连 接 时 , 你 的 计 算 机 应 提 供 一 个 TCP/IP程 序 的 副 本 , 此 时 接 收 你 所 发 送 的 信 息 的 计 算 机 也 应 有 一 个 TCP/IP程 序 的 副 本 。 TCP/IP是 一 个 两 层 的 程 序 。 高 层 为 传 输 控 制 协 议 , 它 负 责 聚 集 信 息 或 把 文 件 拆 分 成 更 小 的 包 。 这 些 包 通 过 网 络 传 送 到 接 收 端 的 TCP层 , 接 收 端 的 TCP层 把 包 还 原 为 原 始 文 件 。 低 层 是 网 际 协 议 , 它 处 理 每 个 包 的 地 址 部 分 , 使 这 些 包 正 确 的 到 达 目 的 地 。 网 络 上 的 网 关 计 算 机 根 据 信 息 的 地 址 来 进 行 路 由 选 择 。 即 使 来 自 同 一 文 件 的 分 包 路 由 也 有 可 能 不 同 , 但 最 后 会 在 目 的 地 汇 合 。 TCP/IP使 用 客 户 XXX 工业大学本科毕业设计说明书 5 端 /服 务 器 模 式 进 行 通 信 。 TCP/IP通 信 是 点 对 点 的 , 意 思 是 通 信 是 网 络 中 的 一 台 主 机 与 另 一 台 主 机 之 间 的 。 TCP/IP与 上 层 应 用 程 序 之 间 可 以 说 是 “没 有 国 籍 的 ”, 因 为 每 个 客 户 请 求 都 被 看 做 是 与 上 一 个 请 求 无 关 的 。 正 是 它 们 之 间 的 “无 国 籍 的 ” 释 放 了 网 络 路 径 , 才 是 每 个 人 都 可 以 连 续 不 断 的 使 用 网 络 。 许 多 用 户 熟 悉 使 用 TCP/IP协 议 的 高 层 应 用 协 议 。 包 括 万 维 网 的 超 文 本 传 输 协 议 ( HTTP) , 文 件 传 输 协 议 ( FTP) , 远 程 网 络 访 问 协 议 (Telnet)和 简 单 邮 件 传 输 协 议 ( SMTP) 。 这 些 协 议 通 常 和 TCP/IP协 议 打 包 在 一 起 。 使 用 模 拟 电 话 调 制 解 调 器 连 接 网 络 的 个 人 电 脑 通 常 是 使 用 串 行 线 路 接 口 协 议 ( SLIP) 和 点 对 点 协 议 ( P2P) 。 这 些 协 议 压 缩 IP包 后 通 过 拨 号 电 话 线 发 送 到 对 方 的 调 制 解 调 器 中 。 与 TCP/IP协 议 相 关 的 协 议 还 包 括 用 户 数 据 报 协 议 ( UDP) , 它 代 替 TCP/IP协 议 来 达 到 特 殊 的 目 的 。 其 他 协 议 是 网 络 主 机 用 来 交 换 路 由 信 息 的 , 包 括 Internet控 制 信 息 协 议 ( ICMP) , 内 部 网 关 协 议 ( IGP) , 外 部 网 关 协 议 ( EGP) , 边 界 网 关 协 议 ( BGP) 。 1.6 UDP 简介 UDP是User Datagram Protocol的简称, 中文名是用户数据包协议,是 OSI 参 考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。它 是IETF RFC 768是UDP的正式规范。 UDP 报 头 由 4 个 域 组 成 , 其 中 每 个 域 各 占 用 2 个 字 节 , 具 体 如 下 : 源 端 口 号 、 目 标 端 口 号 、数 据 报 长 度 、校 验 值 。 UDP 协 议 使 用 端 口 号 为 不 同 的 应 用 保 留 其 各 自 的 数 据 传 输 通 道 。 UDP 和 TCP 协 议 正 是 采 用 这 一 机 制 实 现 对 同 一 时 刻 内 多 项 应 用 同 时 发 送 和 接 收 数 据 的 支 持 。 数 据 发 送 一 方 ( 可 以 是 客 户 端 或 服 务 器 端 ) 将 UDP 数 据 报 通 过 源 端 口 发 送 出 去 , 而 数 据 接 收 一 方 则 通 过 目 标 端 口 接 收 数 据 。 有 的 网 络 应 用 只 能 使 用 预 先 为 其 预 留 或 注 册 的 静 态 端 口 ; 而 另 外 一 些 网 络 应 用 则 可 以 使 用 未 被 注 册 的 动 态 端 口 。 因 为 UDP 报 头 使 用 两 个 字 节 存 放 端 口 号 , 所 以 端 口 号 的 有 效 范 围 是 从 0 到 65535。 一 般 来 说 , 大 于 49151 的 端 口 号 都 代 表 动 态 端 口 。 数 据 报 的 长 度 是 指 包 括 报 头 和 数 据 部 分 在 内 的 总 字 节 数 。 因 为 报 头 的 长 度 是 固 定 的 , 所 以 该 域 主 要 被 用 来 计 算 可 变 长 度 的 数 据 部 分 ( 又 称 为 数 据 负 载 ) 。 数 据 报 的 最 大 长 度 根 据 操 作 环 境 的 不 同 而 各 异 。 从 理 论 上 说 , 包 含 报 头 在 内 的 数 XXX 工业大学本科毕业设计说明书 6 据 报 的 最 大 长 度 为 65535 字 节 。 不 过 , 一 些 实 际 应 用 往 往 会 限 制 数 据 报 的 大 小 , 有 时 会 降 低 到 8192 字 节 。 UDP 协 议 使 用 报 头 中 的 校 验 值 来 保 证 数 据 的 安 全 。 校 验 值 首 先 在 数 据 发 送 方 通 过 特 殊 的 算 法 计 算 得 出 , 在 传 递 到 接 收 方 之 后 , 还 需 要 再 重 新 计 算 。 如 果 某 个 数 据 报 在 传 输 过 程 中 被 第 三 方 篡 改 或 者 由 于 线 路 噪 音 等 原 因 受 到 损 坏 , 发 送 和 接 收 方 的 校 验 计 算 值 将 不 会 相 符 , 由 此 UDP 协 议 可 以 检 测 是 否 出 错 。 这 与 TCP 协 议 是 不 同 的 , 后 者 要 求 必 须 具 有 校 验 值 。 许 多 链 路 层 协 议 都 提 供 错 误 检 查 , 包 括 流 行 的 以 太 网 协 议 , 也 许 想 知 道 为 什 么 UDP也 要 提 供 检 查 和 。 其 原 因 是 链 路 层 以 下 的 协 议 在 源 端 和 终 端 之 间 的 某 些 通 道 可 能 不 提 供 错 误 检 测 。 虽 然 UDP提 供 有 错 误 检 测 , 但 检 测 到 错 误 时 , UDP不 做 错 误 校 正 , 只 是 简 单 地 把 损 坏 的 消 息 段 扔 掉 , 或 者 给 应 用 程 序 提 供 警 告 信 息 。 1.7 即时通信系统简介 1.7.1 系统的网络环境 网络结构:服务器(文件服务器、应用服务器) 、客户端、远程访问。即时通信 系统是运行在服务器上的应用系统,最低的运行环境需要一台服务器。系统需要安 装 Visual C+开发环境。 客户端只需要安装 Windows 98 以上的版本。不需要在客户端安装专门的软件。 1.7.2 数据存储系统 数据存储系统实现数据信息的存储、管理,并为各种应用提供数据访问、存储 等服务。本即时通信系统系统设计的信息包含少量的非结构化信息数据。小型个人 数据存储系统(文件存储系统)基本符合本系统的要求,故选择文件存储作为系统 的数据存储系统。 1.7.3 网络协议 网络协议采用 TCP/IP。通过 TCP/IP 可以十分方便地将异种机型、异种操作系 统的计算机系统构成单一协议的异种机互联网络-TCP/IP 网络,事实上 TCP/IP 也是 XXX 工业大学本科毕业设计说明书 7 现在网络协议中一种通行的标准。 XXX 工业大学本科毕业设计说明书 8 第二章 系统分析与设计 2.1 即时通信系统简介 即 时 通 信 (IM)是 指 能 够 即 时 发 送 和 接 收 互 联 网 消 息 等 的 业 务 。 自 1998 年 面 世 以 来 , 特 别 是 近 几 年 的 迅 速 发 展 , 即 时 通 信 的 功 能 日 益 丰 富 , 逐 渐 集 成 了 电 子 邮 件 、 博 客 、 音 乐 、 电 视 、 游 戏 和 搜 索 等 多 种 功 能 。 即 时 通 信 不 再 是 一 个 单 纯 的 聊 天 工 具 , 它 已 经 发 展 成 集 交 流 、 资 讯 、 娱 乐 、 搜 索 、 电 子 商 务 、 办 公 协 作 和 企 业 客 户 服 务 等 为 一 体 的 综 合 化 信 息 平 台 。 2.2 即时通信系统作用 即 时 通 讯 工 具 最 初 虽 为 聊 天 而 诞 生 , 但 其 作 用 早 已 超 出 了 聊 天 的 范 畴 , 随 着 企 业 即 时 通 讯 工 具 的 出 现 , 即 时 信 息 在 网 络 营 销 中 将 发 挥 更 大 的 作 用 。 随 着 网 络 信 息 化 的 高 速 发 展 , 越 来 越 多 的 大 中 小 企 业 选 择 做 网 络 推 广 , 但 目 前 各 大 搜 索 引 擎 或 门 户 只 能 给 企 业 网 站 带 来 流 量 , 没 有 更 进 一 步 的 接 洽 方 式 , 把 流 量 转 变 成 真 正 的 客 户 , 就 好 比 商 场 里 没 有 营 业 员 , 来 到 商 场 里 的 顾 客 因 为 无 人 招 呼 而 坐 失 商 机 。 企 业 做 了 大 量 的 推 广 因 作 用 不 大 , 而 逐 步 降 低 了 对 网 络 营 销 的 信 心 , 这 不 管 对 企 业 或 是 对 网 络 服 务 提 供 商 来 讲 都 面 临 着 尴 尬 的 境 地 。 企 业 迫 切 需 要 与 来 访 客 户 沟 通 、 访 客 需 要 即 时 咨 询 企 业 相 关 信 息 , 让 我 们 的 网 站 会 说 话 , 让 访 客 与 企 业 之 间 即 时 交 流 互 动 起 来 。 已 经 成 为 网 络 营 销 时 代 亟 待 解 决 的 难 题 。 企 业 做 了 大 量 的 网 络 推 广 , 为 的 是 把 网 民 也 就 是 潜 在 客 户 带 到 自 己 的 网 站 宣 传 企 业 , 间 接 或 直 接 的 销 售 自 己 的 产 品 。 但 通 常 企 业 做 了 大 量 网 络 推 广 效 果 不 明 显 或 是 能 不 能 让 企 业 已 有 的 推 广 效 果 更 加 显 著 呢 ? 我 们 来 看 看 网 民 的 习 惯 : 我 们 浏 览 的 新 网 站 , 90%以 上 是 通 过 搜 索 引 擎 来 发 现 的 , 于 是 企 业 就 做 了 大 量 的 关 键 词 推 广 , 当 然 网 站 的 流 量 也 迅 速 增 加 。 但 访 客 在 浏 览 到 有 意 向 的 产 品 的 时 候 却 没 有 和 企 业 联 系 , 这 是 为 什 么 呢 ? 因 为 我 们 的 网 站 上 只 有 电 子 邮 件 和 电 话 , 有 的 居 然 连 电 话 也 没 有 。 访 客 通 常 会 认 为 邮 件 发 出 去 后 不 能 被 对 方 及 时 发 现 或 是 被 当 成 垃 圾 邮 件 删 除 , 就 算 是 被 相 关 人 员 发 现 什 么 时 间 回 复 你 呢 ? 这 也 是 个 未 知 数 。 我 们 有 了 咨 询 的 需 要 后 就 立 即 点 击 在 线 洽 谈 和 企 业 相 关 人 员 即 时 交 流 互 动 其 结 果 是 不 是 就 大 不 一 样 了 呢 ? 回 答 是 肯 定 的 ! 因 此 每 个 企 业 尤 其 是 做 了 推 广 的 企 业 网 站 XXX 工业大学本科毕业设计说明书 9 装 载 即 时 通 讯 产 品 来 发 掘 潜 在 客 户 、 提 高 销 量 、 领 先 竞 争 对 手 已 刻 不 容 缓 。 现 在 , 大 多 数 顾 客 希 望 在 访 问 网 站 时 获 得 关 于 顾 客 服 务 的 询 问 , 甚 至 为 数 不 少 的 顾 客 在 寻 求 获 得 即 时 满 意 的 服 务 , 于 是 , 各 种 即 时 通 讯 软 件 正 好 作 为 理 想 的 在 线 顾 客 服 务 工 具 。 目 前 已 经 有 6%的 网 站 使 用 IM 作 为 顾 客 服 务 工 具 , 有 45%的 消 费 者 对 此 感 到 满 意 , 这 种 即 时 服 务 已 经 成 为 一 种 不 可 忽 视 而 且 是 最 受 欢 迎 的 在 线 顾 客 服 务 手 段 之 一 , 应 该 引 起 重 视 , 尤 其 是 如 网 上 零 售 、 网 上 保 险 等 对 顾 客 服 务 要 求 较 高 的 领 域 。 研 究 表 明 , 实 时 即 时 通 讯 服 务 对 于 网 上 销 售 中 提 升 订 单 成 功 率 有 很 大 帮 助 , 如 果 使 用 即 时 信 息 合 理 地 开 展 顾 客 服 务 , 顾 客 放 弃 购 物 车 的 比 例 可 以 降 低 20%, 顾 客 放 弃 购 物 车 是 网 上 销 售 中 的 一 种 常 见 现 象 , 与 顾 客 在 超 市 的 购 买 不 同 , 在 网 上 购 物 时 放 弃 购 物 车 的 比 例 很 高 , 是 因 为 在 顾 客 需 要 询 问 时 销 售 商 无 法 给 出 解 答 所 造 成 的 。 为 了 解 决 减 少 顾 客 放 弃 购 物 车 的 问 题 , 我 们 可 以 对 网 上 消 费 者 的 购 物 行 为 进 一 步 分 析 : 用 户 在 购 买 前 已 经 有 一 定 的 购 买 计 划 , 可 能 只 希 望 购 买 自 己 期 望 的 商 品 , 对 于 无 法 确 定 是 否 适 合 自 己 的 商 品 可 能 会 先 放 入 购 物 车 , 而 最 终 在 去 收 银 台 付 款 之 前 放 弃 这 次 购 物 ; 或 者 , 当 看 到 一 件 新 产 品 或 者 计 划 之 外 的 产 品 时 没 有 朋 友 或 者 导 购 员 可 以 商 量 和 咨 询 , 因 此 往 往 会 犹 豫 不 决 。 其 实 , 这 种 种 现 象 背 后 都 包 含 着 同 样 的 问 题 : 网 站 缺 乏 实 时 交 互 性 , 包 括 消 费 者 与 网 站 之 间 以 及 购 买 同 类 商 品 的 顾 客 之 间 的 交 互 。 即 时 信 息 服 务 正 好 可 以 在 这 方 面 发 挥 其 优 越 性 , 从 技 术 上 说 应 该 不 存 在 多 大 障 碍 。 利 用 在 线 客 服 给 顾 客 必 要 的 介 绍 , 这 样 一 定 会 有 助 于 用 户 的 购 买 决 策 , 提 高 订 单 成 功 率 。 2.3 网络即时通信系统需求分析 随着网络用户越来越多,虽然计算机网络的速度一直在迅速发展,但有些时候 还不大尽如人意。所以开发一个在局域网内具有聊天功能和文件传输功能的小软件 很有必要的。于是本人有 C+开发了一个小的软件可以实现文件传输和信息通信功 能。 本即时通信系统系统为一个 CS 的电子商务门户网站,可视其为一个小型聊天 工具,其内容主要是实现即时消息与稳健的发送。 主要完成以下功能: XXX 工业大学本科毕业设计说明书 10 用户:分为普通用户和管理员,实现普通用户登陆、用户注册、发送消息与文 件、管理员实现对服务器的管理。 2.4 环境拓扑 图 3-1 环境拓扑图 运行环境为在局域网内架设一 MyQQ 服务器。有多个客户端可以向服务器申请 号码。登录服务器可与在线用户聊天,文件传输的功能,如用户 1 和用户 2 可以相 互传输文件和发送信息。 2.5 开发与测试 1,设计服务器端应用程序 这部分主要为让服务器打开一定的端口进行监听用户信息请求,对用户登录请 求进行用户名密码的验证。并做出相应的反映。如果验证成功,则向客户端将其他 用户的信息(包括状态,IP,用户名等)发给用户。否则提示用户。对于申请号码 的请求,核对用户信息后将用户信息保存。并把申请成功的号码发给用户。 可以向所有用户发送信息,及做简单的远程控制的功能。 2设计客户端应用程序: 能够向指定服务器发送连接请求。登录成功后可以接收其他用户发送的信息。 并可以向其他用户发送信息。另外可以向在线用户传送文件功能。 XXX 工业大学本科毕业设计说明书 11 第三章 系统的实现 本程序设计分为服务器应用程序及客户机应用程序部分,采用 Socket 套接字库 网络编程。 (UDP)和(TCP/IP)相结合的连接方式,及解决了数据传输的时效性又 能保证数据在传输的过程中不会丢失。另外程序采用多个线程来避免程序阻塞。具 体设计思路及部分代码如下。 3.1 程序设计目的 1,练习使用套接字进行网络编程。 2,练习使用自定义消息。 3,练习多线程方面的编程思想。 4,练习使用各种控件。 图 3-1 服务器与客户端通信方式模型图 说明: 1,服务器首先启动并在 6020 端口进行监听,等待连接。 2,客户端发出连接请求,并发出用户信息。 3,服务器验证用户信息。返回结果给客户。 XXX 工业大学本科毕业设计说明书 12 4,如果验证成功将好友信息发给客户并通知启动聊天信息接收线程。 5,应用程序启动成功。 图 3-2 文件传输流程图 说明: 1,用户 1 向用户 2 发出传送文件请求。并发送文件相关信息等待用户 2 回应。 2,用户 2 收到请求,回复用户 1 如果同意接收启动文件接受线程统治用户 1 可以发 送文件了。否则通知用户 1 不接受。 3,用户 1 收到回复后做相应的动作。 4,文件开始传送。 3.2 程序有关连接及端口信息 1:(UDP)连接部分: 服务器监听端口 6020 作用:接收客户机发送登录和申请号码等数据 用户信息发送接收端口 6000 客户机接收服务器发送身份验证信息 6030 XXX 工业大学本科毕业设计说明书 13 2:(TCP/IP)连接/部分 端口号:4000 作用 1:接收好友信息 2:服务器控制 DOS :+命令 启动网页:/ID CString Name;/姓名 UINT code;/密码 BOOL IsOnline;/状态 int FriendId10;/好友 ID(保留服务器尚不支持) CString ip;/IP 地址 ; 2,在 CQQClientDlg 类中加入成员函数 CQQClientDlg:InitSocket()(功能初试化套 接字和找到本机 IP 地址)函数实现如下 BOOL CQQClientDlg:InitSocket() m_listenSocket=socket(AF_INET,SOCK_DGRAM,0); if(m_listenSocket=INVALID_SOCKET) MessageBox(接收套接字创建失败!); return FALSE; char hostname50; int Result; Result=gethostname(hostname,50); if(Result!=0) MessageBox(主机查找错误!,Error!,MB_OK); return FALSE; HOSTENT* hst=NULL; CString strTemp; struct in_addr ia; XXX 工业大学本科毕业设计说明书 19 CString m_strIP; m_strIP=; hst = gethostbyname(LPCTSTR)hostname); for(int i=0;hst-h_addr_listi;i+) memcpy( strTemp.Format(%sn,inet_ntoa(ia); m_strIP+=strTemp; SOCKADDR_IN SevAddr; SevAddr.sin_addr=ia;/S_un.S_addr=htonl(INADDR_ANY); SevAddr.sin_family=AF_INET; SevAddr.sin_port=htons(6000); m_AddrSev.sin_addr=ia; AddrMsgSend.sin_addr=ia;/.S_un.S_addr=htonl(dlg1.ip); AddrMsgSend.sin_family=AF_INET; AddrMsgSend.sin_port=htons(6000); Result=bind(m_listenSocket,(sockaddr*) if(Result=SOCKET_ERROR) MessageBox(套节字帮定失败!); closesocket(m_listenSocket); return FALSE; return TRUE; 3,增加 TIMER 消息(作用定时向在线用户发送当前所有在先用户检测用户是否在 线) void CChatDlg:OnTimer(UINT nIDEvent) XXX 工业大学本科毕业设计说明书 20 CString temp; int j; m_DataStr.Empty(); m_DataStr.Format(%d*,UserNum); for (j=0;jUserNum;j+) temp.Format(%d%d%s%d%s#,Pfrienddataj.code,Pfrienddataj.id,Pfrie nddataj.Name,Pfrienddataj.IsOnline,Pfrienddataj.ip); m_DataStr+=temp; int SocketResult,i; for(i=0;iUserNum;i+) if(Pfrienddatai.IsOnline=1) SocketResult=send(Pfrienddatai.m_socket,m_DataStr,m_DataStr.GetLength(),0); if(SocketResult=SOCKET_ERROR) Pfrienddatai.IsOnline=0; closesocket(Pfrienddatai.m_socket); Pfrienddatai.m_socket=socket(AF_INET,SOCK_STREAM,0); Pfrienddatai.ip=未知 IP; CString disptemp; m_OnlineNum=0; for(j=0;jUserNum;j+) m_list.DeleteItem(0); for(j=0;jUserNum;j+) XXX 工业大学本科毕业设计说明书 21 disptemp.Format(%d,Pfrienddataj.id); m_list.InsertItem(j,disptemp); disptemp.Format(%s,Pfrienddataj.Name); m_list.SetItemText(j,1,disptemp); disptemp.Format(%d,Pfrienddataj.code); m_list.SetItemText(j,2,disptemp); disptemp.Format(%s,Pfrienddataj.ip); m_list.SetItemText(j,3,disptemp); if(Pfrienddataj.IsOnline=1) disptemp=在线; m_OnlineNum+; else disptemp=离线; m_list.SetItemText(j,4,disptemp); m_UserNum=UserNum; UpdateData(FALSE); CDialog:OnTimer(nIDEvent); 3.5 其他算法的改进方法 当用户增多的时候,可能会对服务器造成一定的压力,甚至一台机器无法承受 的。 我们可以采用多台服务器的方法来实现负载平衡,具体方法为多台服务器使用一个 数据库!不同区域的用户向不同的服务器发送请求。 XXX 工业大学本科毕业设计说明书 22 第四章 即时通信系统的测试报告 4.1 测试结论 本软件能够实现在局域网内类似 ficq 的聊天工具,方便的进行信息传递同时具 有文件传输的能力。客户端可以向服务器申请号码,实现用户登录验证。同时可以 向用户群发信息,和简单的命令控制等功能。 4.2 测试环境 3 台以上以下配置的 PC 机 表 4-1 环境配置表 硬件环境 处理器:P4 2.4 Ghz 内存:512MB DDR 硬盘:40G 网卡:10/100 自适应 软件环境 Windows 2000 server sp4 网络环境 局域网 4.3 功能测试 1服务器启动功能测试 图 4-1 服务器启动界面截图 XXX 工业大学本科毕业设计说明书 23 2申请号码功能测试 图 4-2 申请号码成功界面截图 图 4-3 申请号码失败界面截图 3,用户登录功能测试 图 4-4 用户登录成功界面截图 图 4-5 用户登录失败界面截图 XXX 工业大学本科毕业设计说明书 24 4,发送信息功能测试 图 4-6 发送信息成功界面截图 图 4-7 发送信息失败界面截图 5,接收信息功能测试 图 4-8 回复信息界面截图 6文件发送功能测试 XXX 工业大学本科毕业设计说明书 25 图 4-9 发送文件成功界面截图 图 4-10 发送文件失败界面截图 图 4-11 接收文件界面截图 XXX 工业大学本科毕业设计说明书 26 图 4-12 接受者接收文件截图 图 4-13 发送文件成功截图 7.系统信息发送功能测试 图 4-14 发送系统消息截图 XXX 工业大学本科毕业设计说明书 27 图 4-15 服务器发送消息成功截图 4.4 测试结果 按照相应的顺序对程序功能进行逐个测试。程序功能都已达到相应的效果,能 够实现信息和文件的传输功能。 程序已经通过了测试,可放心使用。 XXX 工业大学本科毕业设计说明书 28 总 结 随着网络用户越来越多,虽然计算机网络的速度一直在迅速发展,但有些时候 还不大尽如人意。所以开发一个在局域网内具有聊天功能和文件传输功能的小软件 很有必要的。于是本人有 C+开发了一个小的软件可以实现文件传输和信息通信功 能。 1. 系统的功能特色 本系统界面友好,操作简单,是一款小型的即时通信系统软件。该系统分为两 个子系统:后台服务器系统和前台客户端系统。 后台服务器系统实现用户的管理,能查看用户当前的状态,向当前在线用户发 送系统公告信息能自动获取本机 IP 地址。 前台客户端系统实现用户注册、登录、发送消息,发送文件等功能;能查看好 友的当前状态。 2. 系统的不足与改进方案 由于时间比较仓促,本系统还有待完善。应该从美观、功能和技术三个方面做 重点改进。在美观方面由于个人审美观问题,系统界面还略显粗糙,应尽可能做到 界面美观、可视化并且要方便用户使用,若时间允许,我会再学一些技术,增加一 些界面的友好
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!