基于MFC的即时通讯软件的设计与实现
摘要
在互联网上有很多即时通讯软件。由于安全性原因,企业内部网络与外网是物理隔离的,无法使用传统的即时通讯软件。本文开了一个专门为企业定制的通讯软件,该软件通过MFC、XML和Socket编程实现。其中客户端包含登录、用户列表和收发消息。服务器端包含主界面、组织管理和用户管理。最终通过测试,该基于MFC的即时通讯软件能够实现注册、登录、收发消息等基本功能,软件运行稳定。
关键词:MFC; XML; Socket; 即时通讯
Design and Implementation of Instant Messaging Software Based on MFC
Zhu Yan, Guo Xiaomei
(College of Information Engineering, Hunan University of Science and Engineering, Yong Zhou425199, Hunan.)
Abstract
There are many instant messaging programs on the Internet. For security reasons, the Intranet is physically isolated from the Internet, and traditional IM software cannot be used. This paper develops a communication software specially customized for enterprises, which is implemented by MFC, XML and Socket programming. The client includes login, user list, and sending and receiving messages. The server contains the main interface, organization management, and user management. Finally through the test, the MFC based instant messaging software can achieve registration, login, send and receive messages and other basic functions, the software runs stably.
Key words:
MFC; XML; Socket; instant messaging
1 背景及意义
企业级的即时通信实际上也可以说是个人即时通信的应用延伸。据统计,90%以上的企业
网内的终端机上都在运行QQ/MSN等个人即时通信软件,人们已经习惯于使用即时通信工具进行日常的工作联络。可是,大多数员工都是在没有获得企业许可的情况下使用个人即时通信工具,这给企业网络带来了比较大的安全和效率问题。加上个人即时通信工具经常让员工陷入非工作状态的聊天中,因此很多企业也通过各种手段禁止员工进行QQ/MSN等操作。在这种现状下,采用企业级的即时通信软件自然就成为了企业客户最好的解决方案,既满足了内部员工的沟通习惯,又解决了公司制度和网络安全等问题,一举两得。socket编程聊天室基本流程
即时通讯系统按照服务端程序是否由使用方维护管控,一般分两大类:SaaS部署和私有部署。平时在应用商店下载注册就可以使用APP 的基本都是SaaS部署的,用户只需要使用,无需操心运维。即时通讯系统私有部署一般在办公环境用的多,对硬件准备,安装部署,运维管理能力都有要求。如即时通专注的就是即时通讯系统私有化部署,让每个企事业单位搭建专属于自己的工作交流平台。
2系统开发相关技术和环境要求
本程序使用的是 TCP 协议实现的即时通信软件,程序是基于Java 语言开发的,主要用到的技术有:Socket 编程,自定义协议。如果使用普通的方法来标记一条消息的结束,如换
行符,那么程序就不易扩展,只能发送纯文本消息,所以需要自己定义一种消息的格式,并且我们还需要提供发送消息与解析消息的方法。服务器端创建一个 ServerSocket,循环等待客户端的连接,每当有客户端连接,就获取到客户端的 Socket 对象,并将该对象交付给一个服务器端线程处理,服务器端线程会不断从 Socket 的输入流中解析出消息类型、长度及消息内容,然后根据类型执行不同的操作。
客户端与服务器建立连接,同时开启一个客户端线程接收服务器端发送的消息,客户端登录是向服务器发送一条登录命令,客户端向服务器发送一条消息首先需要包装成定义的消息格式,然后再发送给服务器。不管是发送消息还是发送命令其实本质都是一条消息,向服务器发送的消息都必须按照定义的格式来。
开发本软件之前,本地计算机需满足以下的条件。开发环境为Visual Studio 2015免费社区版。开发语言为C++/Win32API。开发环境运行平台为Windows7(SP1)以上。数据库管理系统软件为ACCESS。
3 需求分析与总体设计
在人们越来越认识到软件工程在软件开发中的重要作用。目前国内软件在开发中还没有对软件开发的过程进行明确规定,文档不完整,也不规范,软件项目的成功往往归功于软件开发组的一些杰出个人或小组的努力。这种依赖于个别人员上的成功并不能为全组织的软件生产率和质量的提高奠定有效的基础,只有通过建立全过程的改善,采用严格的软件工程方法和管理,并且坚持不懈地付诸实践,才能取得全组织的软件过程能力的不断提高,使软件开发更规范合理。
最简单聊天室的聊,线程池、多线程编程、超时重传确认收包等都不涉及,考虑有两个以下程序。服务器:能接受新的客户端的连接,并将每个客户端发过来的消息发给所有其他的客户端。客户端:能够连接服务器,并向服务器发送消息,同时接收服务器发过来的任何消息根据对实际情况的需求分析,该软件应该满足以下几个功能需求。具有良好的人机交互界面。实现消息的实时传输。能够发送图片,丰富消息的内容。实现文件的传输。程序分为客户端和服务器端。客户端可以使用不同的用户进行登录。账户可以增加或删除,并可以通过组织结构进行分组管理。
总体设计的程序分为客户端和服务器端,多个客户端可以连接同一个服务器,通信系统的
拓扑结构为一个服务器链接多个客户端。服务器不但提供接受客户端的连接,还能够对账户进行管理。客户端主要实现相互之间消息的传递和文件的传输。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论