学校编码:10384 分类号 密级 学号:X2012230289 UDC 工 程 硕 士 学 位 论 文 基于 Socket 技术的局域网聊天系统 设计与实现 Design and Implementation of LAN Chat System Based on Socket 梁明华 指 导 教 师: 董槐林教授 专 业 名 称: 软件工程 论文提交日期: 2014 年 6 月 论文答辩日期: 2014 年 7 月 学位授予日期: 年 月 指 导 教 师: 答辩委员会主席: 2014 年 6 月 厦 门 大 学 博 硕 士 论 文 摘 要 库 厦门大学学位论文原创性声明 本人呈交的学位论文是本人在导师指导下,独立完成的研究成 果。本人在论文写作中参考其他个人或集体已经发表的研究成果, 均在文中以适当方式明确标明,并符合法律规范和《厦门大学研究 生学术活动规范(试行)》。 另外,该学位论文为( )课题 (组)的研究成果,获得( )课题(组)经费或实 验室的资助,在( )实验室完成。(请在以上括号 内填写课题或课题组负责人或实验室名称,未有此项声明内容的, 可以不作特别声明。) 声明人(签名): 年 月 日 厦 门 大 学 博 硕 士 论 文 摘 要 库 厦门大学学位论文著作权使用声明 本人同意厦门大学根据《中华人民共和国学位条例暂行实施办 法》等规定保留和使用此学位论文,并向主管部门或其指定机构送 交学位论文(包括纸质版和电子版),允许学位论文进入厦门大学 图书馆及其数据库被查阅、借阅。本人同意厦门大学将学位论文加 入全国博士、硕士学位论文共建单位数据库进行检索,将学位论文 的标题和摘要汇编出版,采用影印、缩印或者其它方式合理复制学 位论文。 本学位论文属于: ( )1.经厦门大学保密委员会审查核定的保密学位论文, 于 年 月 日解密,解密后适用上述授权。 ( √ )2.不保密,适用上述授权。 (请在以上相应括号内打“√”或填上相应内容。保密学位论 文应是已经厦门大学保密委员会审定过的学位论文,未经厦门大学 保密委员会审定的学位论文均为公开学位论文。此声明栏不填写的, 默认为公开学位论文,均适用上述授权。) 声明人(签名): 年 月 日 厦 门 大 学 博 硕 士 论 文 摘 要 库 厦 门 大 学 博 硕 士 论 文 摘 要 库 摘要 I 摘要 随着计算机网络技术的高速发展,各种基于网络的应用随之诞生,比如基 于互联网的通信、信息发布、数据共享等等,同时也促进局域网的迅速发展和 和局域网技术的广泛应用。为了高效、快速地处理各种事务,越来越多的企事 业单位使用内部局域网进行工作,特别有些企业单位为了避免内部机密通过互 联网泄露,只希望员工通过内部局域网进行沟通与交流。因此,为了实现内部 的通信,较好的方式是在局域网内部必建立起即时通信 IM(Instant Messaging), 也就是聊天系统。本文基于 Socket 技术设计并实现一个局域网聊天系统。 本系统基于 C/S 模式,采用 VC++编程语言,利用面向对象的设计思想, 在Windows平台上,将客户端和服务端融合在同一个程序之内,使用多线程实 现不同的并行任务,从而实现局域网内的即时通信功能。本文主要就系统开发 的使用工具、可行性分析、功能需求分析、系统设计、系统实现、系统测试等 方面的介绍,构建了局域网聊天系统,利用系统可实现局域网用户扫描、用户 列表维护、私聊、群聊、添加群、文件传送等基本功能。 本文实现的系统使用简单,功能合理,且无需对原有的局域网硬件改动, 成本低,在局域网建立一种良好、安全、快速的通信机制。 关键词:局域网;Socket;即时通信 厦 门 大 学 博 硕 士 论 文 摘 要 库 厦 门 大 学 博 硕 士 论 文 摘 要 库 Abstract III Abstract The rapid development of the information technology brings about a variety of Web-based applications, which the computer networks is applied to all businesses and trades, such as Internet-based communication, information dissemination, data sharing, and so on. At the same time, the LAN is also developed rapidly, the LAN technology has been widely used. In order to efficiently and quickly deal with various transaction, more and more enterprises use their internal LAN to work. Especially, some businesses only hope that the staff communicates with LAN in order to avoid disclosing confidential information through the Internet. To achieve internal communications, a better approach is that the instant messaging (i.e, chatting system) must be established in the LAN. Based on Socket technology, a LAN chat system was designed and fulfilled in thesis. Based on C / S mode, the designed system integrated client and server in same program with use of VC + + programming language and object-oriented design on the Windows platform, and used multi-thread to accomplish different parallel tasks, thus the real-time communication is fulfilled in LAN. This system focuses on system development tools, feasibility analysis, functional requirements analysis, system design, system implementation, system testing and so on, a LAN chat system was constructed on the basis of the above-mentioned functions, in which LAN users can scan, maintain list, chat in person or group, add group, transfer file etc. The system is easy to use, which has rational function and low cost, it needn’t change the existing LAN hardware and provides a good, fast safe communication mechanism for LAN. Key words: LAN; Socket; Instant Messaging 厦 门 大 学 博 硕 士 论 文 摘 要 库 厦 门 大 学 博 硕 士 论 文 摘 要 库 目录 V 目录 第 1 章 引言 .............................................. 1 1.1 系统开发背景及意义 ........................................... 1 1.2 研究现状 ..................................................... 1 1.3 研究内容与结构 ............................................... 2 第 2 章 相关技术介绍 ...................................... 3 2.1 WIN32 编程原理及 MFC 框架 ...................................... 3 2.2 WINDOWS SOCKETS网络编程接口 .................................... 5 2.3 多线程编程技术 .............................................. 6 2.2 VISUAL C++ 6.0 开发平台 ........................................ 7 2.5 本章小结 ..................................................... 8 第 3 章 需求分析 .......................................... 9 3.1 业务需求 ..................................................... 9 3.2 功能需求分析 ................................................. 9 3.2.1 系统功能描述 ............................................. 9 3.3.2 系统用例图 .............................................. 10 3.3 性能分析 .................................................... 14 3.4 可行性分析 .................................................. 15 3.5 环境需求 .................................................... 15 3.6 本章小结 .................................................... 16 第 4 章 系统设计 ......................................... 17 4.1 设计目标 .................................................... 17 4.2 系统功能模块设计 ............................................ 17 4.3 本章小结 .................................................... 19 第 5 章 系统实现 ......................................... 20 厦 门 大 学 博 硕 士 论 文 摘 要 库 VI 5.1 系统登录界面的实现 ......................................... 20 5.2 系统主界面的实现 ........................................... 22 5.3 私聊模式的实现 ............................................. 27 5.4 群聊模式的实现 ............................................. 38 5.5 添加群的实现 ............................................... 39 5.6 托盘图标的实现 ............................................. 42 5.7 弹出式菜单的实现 ........................................... 45 5.8 本章小结 ................................................... 46 第 6 章 系统测试 ......................................... 47 6.1 系统测试方法 ................................................ 47 6.2 系统测试过程 ............................................... 48 6.3 系统测试结果分析 ............................................ 50 6.4 本章小结 .................................................... 50 第 7 章 总结与展望 ............................................... 51 7.1 总结 ........................................................ 51 7.2 展望 ........................................................ 52 参考文献 ................................................ 53 致谢 .................................................... 54 厦 门 大 学 博 硕 士 论 文 摘 要 库 Contents VII Contents Chapter 1 Introduction ............................................................................ 1 1.1 The System Development Background and Significance ............................... 1 1.2 Research Status .................................................................................................. 1 1.3 Study on the Content and Frame ..................................................................... 2 Chapter 2 Overview of the Related Technologies .................................. 3 2.1 Win32 Programming Theory and MFC Frame .............................................. 3 2.2 Windows Sockets ................................................................................................ 5 2.3 Programming Technology for Multi-thread ................................................... 6 2.2 Visual C++ 6.0 .................................................................................................... 7 2.5 Summary ............................................................................................................. 8 Chapter 3 Requirements Analysis ........................................................... 9 3.1 Business Requirement ....................................................................................... 9 3.2 Function Requirements Analysis ...................................................................... 9 3.2.1 System Function Description ........................................................................ 9 3.3.2 System UML Use Case Diagram ................................................................ 10 3.3 Performance Analysis ...................................................................................... 14 3.4 Feasibility Analysis .......................................................................................... 15 3.5 Environment of System ................................................................................... 15 3.6 Summary ........................................................................................................... 16 Chapter 4 System Design ....................................................................... 17 4.1 Design Objective ............................................................................................ 17 4.2 Design of Function Modules of System .......................................................... 17 4.3 Summary ........................................................................................................... 19 Chapter 5 System Implementation ........................................................ 20 厦 门 大 学 博 硕 士 论 文 摘 要 库 VIII 5.1 Implementation of Logon Screen ................................................................... 20 5.2 Implementation of the Main Interface ........................................................... 22 5.3 Implementation of Private Chat Mode .......................................................... 27 5.4 Implementation of Group Mhat Mode .......................................................... 38 5.5 Add a Group ..................................................................................................... 39 5.6 Implementation of Trayicon ........................................................................... 42 5.6 Implementation of Menu ................................................................................. 45 5.8 Summary ........................................................................................................... 46 Chapter 6 System Testing ...................................................................... 47 6.1 System Testing Method ................................................................................... 47 6.2 System Testing Process .................................................................................... 48 6.3 Analysis of Test Results of the System ........................................................... 50 6.4 Summary ........................................................................................................... 50 Chapter 7 Conclusions and Outlook ..................................................... 51 7.1 Conclusions ....................................................................................................... 51 7.2 Outlook .............................................................................................................. 52 References ................................................................................................ 53 Acknowledgements ................................................................................. 54 厦 门 大 学 博 硕 士 论 文 摘 要 库 第 1章 引言 1 第 1 章 引言 1.1 系统开发背景及意义 近年来,随着计算机网络技术的不断发展,为了高效、快速地处理各种事 务,企业要求在其内部使用局域网来进行信息交流,在线办公。这样既简化信 息流程的许多环节,实现无纸化办公,提高工作效率,又可以让一些企业单位 避免内部机密通过 Internet 泄露。可是随着企业规模的扩大,业务量增加,信 息量的增大,要求越来越高,往往一些企业由于设计上的原因,经常会造成信 息阻塞。因此,为了实现内部的通信,较好的方式是在局域网内部必建立起即 时通信 IM(Instant Messaging),也就是聊天系统。 针对上述的问题,本文探讨一种基于 Socket技术的局域网即时通信工具, 能为企业在其内部网建立一种良好的、安全的、快速的通信机制。它无需对企 业已经建立的局域网进行改动,无需登录到 Internet,实现成本低,降低通信 负荷,提高使用效率,以满足企业内部局域网的各种通信需求。 基于 Socket的局域网聊天系统是局域网通信软件的具体使用之一,特点是: 信息收发速度快,保密性好,占用网络带宽资源低,易于实现等优点以及应用 范围广阔,拥有广泛的应用前景,具有一定的实用价值。 1.2 研究现状 目前,国内面向个人的即时通信产品主要有腾讯 QQ、微软MSN、网易泡泡、 雅虎通等。面向企业用户的即时通信产品比较多,但除了腾讯、微软等少数运营 商的用户之外,其它产品推出的时间较短,用户不多。广域网上的即时通信工具, 目前一般采用 UDP(User Datagram Protocol,用户数据包协议)或者 TCP (Transmission Control Protocol,传输控制协议)体系来实现,开发技术已经比 较成熟[1]。对比广域网,在局域网内部实现即时通信较为简单,因为广域网的网 络结构本身比局域网要复杂。 如今即时通信技术已日益成熟,然而各类即时通信工具及服务仍然还有一些 问题不够完善,其主要有以下几方面: 厦 门 大 学 博 硕 士 论 文 摘 要 库 基于 Socket技术局域网聊天系统的设计与实现 2 (1)安全性问题。目前,大多数即时通信系统的安全性能不强,容易受到病 毒攻击。 (2)互联互通问题。受多种因素制约,各即时通信工具间的互联互通问题至 今未解决。随着即时通信企业用户规模的进一步扩大,要求不同的即时通信工具 实现互联,这是不可避免的话题。 (3)差异化问题。目前市场上的几大即时通信工具,它们在服务功能、市场 定位和目标市场选择上都基本相似,缺乏特色,不利于该项技术的发展。 1.3 研究内容与结构 本文主要研究内容是探讨与设计一个基于局域网的聊天工具,论述开发系统 的平台以及相关技术,研究系统分析和系统设计,从软件工程的角度,对局域网 聊天器系统进行需求分析,分别介绍了业务需求、功能分析、系统性能需求、系 统可行性以及系统运行环境。设计聊天系统要实现的各项工作流程图,明确系统 要实现的目标和开发中的注意事项。 本文计从系统开发的使用工具、可行性分析、功能需求分析、系统设计、系 统实现、系统测试等一系列开发过程介绍局域网聊天系统的设计与实现。该系统 的整个开发过程经历了需求分析、规划系统架构、实现模块功能、编程测试和论 文的撰写阶段,实现了系统的基本功能,包括局域网用户扫描、用户列表维护、 私聊、群聊、添加群、文件传送等功能。最后,进行测试并对测试结果进行分析。 本文共七章,各章内容安排如下: 第 1章 引言,介绍了系统开发背景及意义、研究现状。 第 2章 系统开发工具,介绍本系统主要使用的开发工具。 第 3章 系统分析,包括系统的可行性分析、系统功能分析、系统性能分析。 第 4 章 系统设计,介绍系统的总体结构设计、设计目标、系统模块以及 系统整体文件架构。 第 5章 系统实现,详细介绍本系统的各个模块的功能和具体实现过程。 第 6章 系统测试,介绍本系统的测试过程。 第 7章 总结与展望,对本系统所做的工作和论文进行总结并展望后续的研 究工作。 厦 门 大 学 博 硕 士 论 文 摘 要 库 第 2章 相关技术介绍 3 第 2 章 相关技术介绍 前一章已经对系统的开发背景及意义、研究现状进行了概述,本章主要对 系统使用的开发工具及相关技术进行介绍。 2.1 Win32 编程原理及 MFC 框架 1. Win32 编程原理 Win32是指Microsoft Windows 操作系统的 32位环境,Win32开发,就是在 C语言的层面上,直接使用Win32 API工具开发Windows应用程序或系统程序[2]。 Win32其实是一个 API规范,它与 UNIX系统编程接口标准 POSIX 是相对应的。 一个 Windows 程序分为程序代码和 UI(User Interface 用户接口)资源两大部 份,两部份最后以 RC 编译程序整合为一个完整的 EXE 文件[2]。UI 资源是指功能 菜单、对话框、程序图标、光标形状等等,这些 UI 资源的实际内容(二进制代 码)借助各种工具产生,并以各种扩展名存在,如 .ico .bmp .cur 等等。程序员 通过资源描述文档(.rc )中描述它们。RC 编译器( RC.EXE )读取 RC 文件的 描述后将所有 UI资源文件集中制作出一个.RES 文件,再与程序代码结合在一起, 形成一个完整的 Windows可执行文件。 32 位 WINDOWS 程序的开发流程如图 2-1 所示。 Tool Text File Binary File Dialog Editor Dialog Editor Dialog Editor .DLG .BMP .ICO .CUR .FON .C .H .RC RC Compilor C Compilor .RES .OBJ .DEF CvtRes .RBJ LINKER LIB C Rumtime DLL Import EXIT 图 2-1 32 位 WINDOWS 程序的开发流程 厦 门 大 学 博 硕 士 论 文 摘 要 库 基于 Socket技术局域网聊天系统的设计与实现 4 从图 2-1 可知,首先程序进行初始化工作——产生窗口,注册一个窗口类: 用 API 函数 RegisterClass()来实现,通过调用 CreateWindow()和 ShowWindow()两 个函数来产生,初始化后,系统将进入消息循环: while (GetMessage(&msg, NULL, 0, 0)) {TranslateMessage(&msg); DispatchMessage(&msg);} 当消息循环捕捉到消息后,将交由窗口函数 WndProc()进行相应的处理。这 样,一个基于消息事件驱动的Win32程序的雏形就建立起来了。 2.MFC框架 从上所述可知,直接用 API函数开发一个Win32程序很繁琐,基于这点考虑, 微软将绝大部分的 API函数进行封装,构成了类,简化了Win32开发的复杂性。 形成 MFC(Microsoft Foundation Classes),它是 VC 开发环境的一个核心构件, MFC 构架了一个庞大的类体系结构,其最为主干的是下面类结构如图 2-2 所示。 图 2-2 MFC 类框架主体 CObject 是MFC 类库的根类。 MFC 类库包括:CCmdTarget 类,CWinThread 类,CWnd 类,文档类 CDocument 类。 一个 MFC 应用程序并不直接操作上述类,而是以上述类为基类派生新的 类,来构建 Windows 应用程序的基本框架。 厦 门 大 学 博 硕 士 论 文 摘 要 库 Degree papers are in the “Xiamen University Electronic Theses and Dissertations Database”. Full texts are available in the following ways: 1. If your library is a CALIS member libraries, please log on http://etd.calis.edu.cn/ and submit requests online, or consult the interlibrary loan department in your library. 2. For users of non-CALIS member libraries, please mail to etd@xmu.edu.cn for delivery details. 厦 门 大 学 博 硕 士 论 文 摘 要 库