企业即时通信系统IM的设计与实现(VC++)
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
摘要:现在即时通讯系统服务的内部拓扑中大部分采用客户/服务器模型,客户/服务器/客户模型和客户/客户模型,并且市场上应用的很多即时通信软件比如QQ和MSN都采用的是客户/服务器/客户模型,由于它们都需要由位于中心的服务器来协调,这对一些想拥有自己内部即时通信软件的小企业和家庭的局域网用户来说,服务器的成本实在是太大,于是 便有了编写本软件的构想。本软件功能成功摆脱了中心服务器的束缚,它的基本功能就是让用户能够在局域网上通过采用TCP/IP协议进行点对点交流。本软件通过Visual C++软件创建的是对话框应用程序,连接后服务器可以充当客户机,客户机也可以充当服务器。它们可以同一台计算机上,也可以把应用程序复制到另一台计算机上,这样没有中间服务器存在,在两个独立的计算机上分别运行应用程序,从而通过网络传递消息。近年来,随着全球信息化进程的不断发展,网络也在飞速发展。出于高效、快速地处理各种事务的目的,越来越多的企业在其内部使用局域网来进行工作。在内部局域网的帮助下,企业得以简化信息流程,提高信息交换的速度,从而提高工作效率。关键词:P2P、TCP/IP、Visual C++、通信 think58好,好think58
[资料来源:www.THINK58.com]
think58.com [来源:http://think58.com]
Based on the enterprise instant communication IM systemStuName:HuangWei class:078205326ADVISOR:FuLin YangAbstract:Now im system services most of internal topology by client/server model, client/server/client model and customer/customer model, and the market a lot of instant communication software applications such as QQ and MSN dominated by client/server/client model, because they all need by the center server to coordinate, this for some want their own internal instant communication software small businesses and families LAN users, server cost is really too big, so had the idea of writing the software. The software function from center server success the basic function of bondage, it is to let the user to online through LAN using TCP/IP protocol to peer-to-peer communication. This software through Visual c + + software created is dialog application, after connection could serve as the client, client server also can serve as a server. They can be the same computer, also can put application copied to another computer, so no middle server exist, in two separate computer to run applications, which respectively relay messages through the network. In recent years, along with the continuous development of global informationization, the network is growing rapidly. For efficient, fast processing various affairs purpose, more and more enterprises in its internal use LAN to work. In internal LANs help, enterprise simplifies the flow of information, improve information exchange rate, which can improve the work efficiency. 内容来自think58
Key words: LAN, instant messaging, client, server, multi thread,share memory,Information think58好,好think58 [资料来源:www.THINK58.com]
目 录
内容来自think58 [资料来源:http://think58.com]
[资料来源:http://THINK58.com]1 引 言11.1 课题背景及意义:11.2 课题现状11.3 本文的主要工作:21.4开发平台与技术的选择及介绍22 需求分析及可行性研究32.1 需求分析:32.1.1 时间要求32.1.2 功能要求32.1.3 系统基本流程图42.1.4 性能要求42.1.5 测试环境规定42.2 可行性研究:43 相关开发技术的原理性说明53.1 win32编程原理及MFC框架53.1.1 WIN32编程原理53.1.2 MFC框架63.2 TCP/IP 协议及WINDOWS SOCKETS网络编程接口83.2.1 TCP/IP协议简介83.2.2 WINDOWS SOCKETS网络编程接口概述103.3 多线程编程技术113.3.1 进程及线程概述113.3.2 Win32 API对多线程编程的支持124 总体设计134.1体系结构设计134.2 功能模块划分144.3 数据结构设计154.4 用户界面设计154.4.1 服务器端显示界面:154.4.2 客户端显示界面:165 详细设计及编码实现165.1 主框架及用户界面模块详细设计165.2 网络扫描模块详细设185.3 信息发送模块详细设计185.4 信息接收模块详细设计206 测 试20结 论21致 谢22参考文献23在客户端启动后,客户端计算得到本地网络的广播地址,进行广播查找服务器端,服务器接收到客户端的广播信息后返回服务器地址,则客户端接收、验证信息并记录服务器端地址,然后客户端启动定时期,定时发送信息到服务器,以告知服务器自己在线,然后服务器返回在线用户列表,服务器依靠客户端发送的信息来更新维护在线用户列表。在客户端与服务器尽心数据交换,拥有了在线用户列表后,就可以选择IP进行客户端之间的点对点信息交流了。如果服务器不在线,则客户端会提示用户退出,在一定的时间后自动退出。4.2 功能模块划分
think58.com [资料来源:http://think58.com]
[资料来源:THINK58.com]
其中主线程模块完成对网络的初始化,然后启动两个子线程:服务端监听线程以及网络扫描模块线程,然后由网络扫描模块得到当前的网络用户分布情况,并填充相关的数据结构,然后生成用户列表界面显示给用户。通信模块又包括两个子模块:数据接收模块和数据发送模块,这两个模块都由系统定义的网络事件来触发。输入/输出模块用来响应用户双击用户列表的某一项要准备发送信息时的消息,以及当系统接收到某个网络用户发送来的消息,要将其显示给用户的时候。网络扫描模块是由主线程模块启动,进行网络扫描,确定哪些用户当前处于可到达状态,以及哪些可到达状态的用户安装有相应的通信软件,并启动之可以与之进行通信。 think58
[来源:http://www.think58.com]
copyright think58