《毕业设计(论文)-基于局域网的通信工具设计》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于局域网的通信工具设计(41页珍藏版)》请在金锄头文库上搜索。
1、湖南科技大学本科生毕业设计(论文)摘 要随着计算机网络技术的发展,各种各样基于网络的应用也随之诞生,比如基于互联网的信息发布,通信,数据共享等等。局域网的发展也同样迅速。很多政府机构,企业,学校,都是先以一个统一的局域网联结在一起,再分别接入INTERNET.因此基于局域网的即时通信工具,就这样应运而生了。所以本文提出了一个更加合理的设计,并在WINDOWS平台上加以了实现.在本实现内将客户端和服务端综合在一个程序之内,用多线程实现不同的并行任务。并进行了人性化的界面设计,使用起来更加简单方便,并且功能十分合理,又易于扩展以及个性化定制。本文通过局域网聊天系统来具体共享内存实现进程间的数据交换
2、,利用windows消息机制实现进程间的同步,两种机制结合使用。关键词:局域网;即时通信;客户端;服务端;多线程; AbstractAlong with the high-speed development of the computer network technology, various of applications based on network was born, like information releasing, data sharing . The development of the LAN is the same fast. Some governments, ent
3、erprises and schools constitute a LAN first ,then join into INTERNET. So the instant messenger in LAN was borned. So I make a new design, and implement it on WINDOWS platform. In my implementation the client and the server were integrated in one program with multi thread mechanism. And had a good GU
4、I,it was very easy to use it. And the function is very realizable. At last, it is also easy for expanding.Key words: LAN, instant messaging, client, server, multi thread; I目录第一章 引言- 1 -1.1 研究背景及意义- 1 -1.2 研究现状- 1 -1.3 开发平台、开发技术的介绍- 2 -1.3.1 Windows Socket 网络编程简介- 2 -1.3.2 VC+ 6.0 简介- 2 -第二章 需求分析及可行性
5、研究- 3 -2.1 需求分析- 3 -2.1.1 功能需求分析- 3 -2.1.2 数据需求分析- 3 -2.1.3 性能需求分析- 3 -2.1.4 运行需求分析- 4 -2.2 可行性研究- 4 -2.2.1 成本可行性- 4 -2.2.2 技术可行性- 4 -第三章 相关开发技术的原理性说明- 5 -3.1 Win32编程- 5 -3.2 MFC (Microsoft Foundation Class)- 6 -3.2.1 简介- 6 -3.2.2 MFC与C 语言API 的关系- 7 -3.2.3 MFC类库- 7 -3.3TCP/IP协议及WINDOWS SOCKETS 网络编程接
6、口- 9 -3.3.1 TCP/IP协议简介- 9 -3.3.2 WINDOWS SOCKETS网络编程接口概述- 10 -3.4多线程技术- 11 -3.4.1 进程及线程概述- 11 -3.4.2 MFC对多线程编程的支持- 12 -第四章 概要设计- 13 -4.1 总体设计- 13 -4.1.1 客户端与服务器端的信息交流- 13 -4.1.2 服务器端程序流程图- 14 -4.1.3 客户端程序流程图- 15 -4.2 界面的设计- 15 -4.2.1 MFC控件简介- 15 -4.2.2 界面设计- 16 -第五章 详细设计及编码实现- 17 -5.1 服务器端- 17 -5.1.
7、1 初始化对话框- 17 -5.1.2 启动服务所对应的功能函数- 17 -5.1.3 停止服务对应的功能函数- 18 -5.1.4 定时器功能函数- 19 -5.1.5 创建线程时调用的功能函数- 20 -5.1.6 在控件IDC_showip上显示参数lParam中的信息- 23 -5.1.7 服务器端消息映射机制- 23 -5.2 客户端- 24 -5.2.1 初始化对话框- 24 -5.2.2 获得本地广播地址的功能函数- 25 -5.2.3 初始化两个SOCKET的功能函数- 26 -5.2.4 接收服务器信息线程的功能函数- 28 -5.2.5 在控件上显示在线用户列表- 29 -
8、5.2.6 接受客户端信息(聊天信息)的线程- 30 -5.2.7 显示通过参数lParam传输过来的聊天信息- 31 -5.2.8 点击IDC_send控件后调用的函数- 31 -5.2.9 定时器功能函数- 32 -5.2.10 客户端的消息映射- 34 -第六章 结束语- 35 -6.1 设计总结- 35 -6.2 未来展望- 35 -致 谢- 36 -参考文献- 37 -第一章 引言1.1 研究背景及意义即时聊天工具是一种可以让使用者在网络上实时通讯的工具,大部分的即时通讯工具提供了状态信息的特性,如显示联络人名单,联络人是否在线及能否与联络人交谈等。目前在互联网上受欢迎的即时通讯软件
9、包括百度QQ、MSN Messenger、Yahoo! Messenger、AOL Instant Messenger、NET Messenger Service、Jabber、ICQ等。在本文中将讨论一种基于MFC Socket的局域网通信工具的设计与实现方法。基于MFC Socket的局域网通信软件可以为局域网提供一种良好、安全、快速的通信机制,在局域网内部通信、教学、讨论等应用中都具有一定的实用价值,它同时很好地诠释了MFC Socket通信的原理。基于Socket的局域网通信软件应用范围广阔,不但可以处理传统的通信需求,而且也能扩展以适应新型的网络应用,如网络教育,数据影音传输等,拥有
10、广泛的应用前景。1.2 研究现状基于局域网的即时通信工具,实际上是互联网即时通信工具的一个小规模版本,广域网上的即时通信工具,如今一般采用UDP或者 TCP协议体系来实现 ,开发技术已经比较成熟,比如较早的ICQ、MSN Messenger、YAHOO通等国外开发的产品,还有国产的有名的QQ、新浪UC、LAVA-LAVA等,这些工具统统都实现了广域网上的即时通信,尽管都是即时通信,实现了即时聊天,以及文件传输的主要功能,但是也各有各的特色,比如ICQ的巨大客户群,MSN的个性化表情,YAHOO通的易操作性等,而QQ也具有一个相当方便的屏幕截图功能,另外就是,所有上述软件都实现了网络即时的视频,
11、语音聊天功能。这些软件,在使用方面各有特色,在实现方面也各有所长,但由于这些产品正在商业运营阶段,其实现方式属于商业机密,具体细节不可能得知,但是它在大的方面无非就是各种利用各种平台上的网络通信接口,建构基于下层TCP/IP,或者UDP/IP协议的软件产品。在局域网内,这些功能的实现跟广域网相比更加简单,因为局域网的网络结构本身比广域网要简单,但是可以借此理解网络协议,以及网络通信工具的实现原理,所以仍然极具研究价值。1.3 开发平台、开发技术的介绍1.3.1 Windows Socket 网络编程简介Windows Sockets 规范以U.C. Berkeley 大学BSD UNIX 中流
12、行的Socket 接口为范例定义了一套开放的、支持多种协议的、Microsoft Windows 下的网络编程接口,并不是一种网络协议。它不仅包含了人们所熟悉的Berkeley Socket 风格的库函数;也包含了一组针对Windows 的扩展库函数,以使程序员能充分地利用Windows 消息驱动机制进行编程。Windows Sockets 规范本意在于提供给应用程序开发者一套简单的API,使应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。现在的Windows Sockets已经基本上实现了与协议无关,你可以使用Windows Sockets来调用多种协议的功能,
13、但较常使用的是TCP/IP协议。Socket实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个Socket接口来实现。微软为VC定义了Windows Sockets类如CAsyncSocket类和派生于CAsyncSocket 的CSocket类,它们简单易用。1.3.2 VC+ 6.0 简介我们通常所说的Visual C+实际上是一个完善的、非常强大的C+程序开发环境,它的名字是 Microsoft Developer Studio 。二者之间的细小差别并不重要,通常这两个术语可以互换。但如果你不围绕Dev
14、eloper Studio 来进行学习,就不能有效地使用Visual C+(Developer Studio 听起来很像Visual Studio , 但它们之间没有关系)。它包含:C+编译器、调试器、应用程序框架生成器、项目管理器、设计和实现菜单等资源的编辑器等等第二章 需求分析及可行性研究2.1 需求分析2.1.1 功能需求分析(1)用户选择需要对话的IP点击发送后,客户端与客户端之间使用点对点发送信息(UDP),利用3号端口。(2)客户端定时自动向服务器端发送信息,确认在线,利用2号端口。(3)服务器端维护在线用户列表,并在客户端发送确认再现信息后,利用1号端口向在线客户端返回在线用户列
15、表。(4)客户端在指定时间内未向服务器端发送信息的,服务器认为客户端下线。客户端在一定时间内未收到服务器端信息的,认为服务器已经下线,则提示用户并建议退出,在用户一定时间后没有退出的则自动关闭客户端程序。2.1.2 数据需求分析(1)客户端之间聊天信息。(2)在线用户列表信息。(3)客户端向服务器端发送的确认在线信息。(4)其它程序内部可能需要设计的数据结构体。2.1.3 性能需求分析(1)可靠性高,能对由于系统问题产生错误后作出相应处理,比如网络初始化失败、服务器不在线等,要求能尽可能多的设想到可能发生的事件,做出相应的处理。(2)良好的容错性能,当用户非法操作或系统出现问题时能以最好的方式推出程序。(3)宜操作性,程序简单易懂,容易上手使用。(4)开发文档易理解,保证以后自己二次开发或他人接手开发时,能够清晰的理解整个系统的设计思路和实现细节。(5)模块化设计,易于以后的维护与扩展。2.1.4 运行需求分析(1)用户界面无启动界面、认证界面