1、基于 NETBIOS 的聊天工具毕业设计(论文)共 21 页完成日期 2009 年 5 月 17 日答辩日期 2009 年 5 月 23 日I摘 要从实际工程应用角度出发,以计算机网络原理为指导,结合当前网络中的一些常用技术,编程实现基于 NETBIOS 的网络聊天工具,该聊天工具具有聊天功能,添加删除好友,个人信息管理等等(其他功能待实现,如语音聊天,文件传输,图片发送等)。该论文主要对当今聊天软件的发展情况、与该聊天软件相关的各种技术以及该聊天工具的实现做了一个详细的阐述:1. 作为计算机网络的应用之一聊天工具,受到了用户的普遍爱好,它把人们带进了一个虚拟的网络世界,大大的加深了人们之间的
2、联系。从单一的文本聊天,到语音聊天以及到现在的图像、视频聊天、及时短信的发送和在线游戏等功能的开发,已经大大的拓展了聊天工具的概念,它将会作为未来人们通过因特网相互联系和娱乐的主要平台。2. 聊天工具的开发主要用到了网络通信技术。3. 该聊天软件基于 NETBIOS 通信,在此基础上,实现点对点聊天等。4. 该聊天工具可以运行于任何支持 NETBIOS 协议的机器上。5. 由于系统采用 c/s 结构,客户端与客户端以及客户端与服务器端需要传送一些控制消息,因此系统需要自定义一些消息类型,这是该聊天工具的又一大关键之处。关键词 : 网络通信,NETBIOS,聊天,语音聊天,文件传输目录第 1 章
3、 绪 论 .11.1 项目开发的背景 .11.2 项目开发的主要内容 .41.3 项目开发的意义 .41.4 项目开发的过程 .4第 2 章 系统分析 .52.1 对已有聊天软件的分析 .52.2 系统有关的技术 .62.2.1 网络通信技 术 .62.3 系统方案说明 .62.3.1 可选择的其他系统方案 .62.3.2 本系统的 方案 .72.4 系统任务概述 .72.5 系统其他要求 .72.5.1 系统性能要求 .72.5.2 系统环境要求 .8第 3 章 系 统 设 计 .93.1 系统的软 件结构 .93.3 系统数据结构设计 .93.4 系统 界面设计 .12第 4 章 系统 实
4、现 .134.1 功能规定 .134.2 未实现源代码分析 .144.2.1 接受语音数据线程源代码分析 .14第 5 章 测试与 使用 .165.1 测试目标 .165.2 测试方法 .165.3 测试结果 .175.4 使用 简介 .17第 6 章 总 结 .18致谢 .20参考文献 .21健雄职业技术学院毕业设计(论文)1第 1 章 绪 论1.1 项目开发的背景自从上世纪中叶第一台计算机诞生以来,计算机越来越走进人们的生活当中,特别是随着计算机网络的发展,把全世界的人们紧密的联系在一起,大大的扩展了计算机的功能,人们越来越离不开计算机了。如今,作为网络应用之一的聊天工具,越来越受到人们的
5、欢迎和重视。现在已有的聊天软件和聊天工具不胜枚举,流行的主要有QQ,ICQ,MSN Message,NetMeeting,mIRC 和郎码 UC 和各种的网页聊天室等。这些软件特别是 QQ 升级很快,其功能是越来越来强大,将代表着聊天软件的发展方向。目前,聊天软件的功能除了最基本的文本聊天,已经可以语音聊天,图像聊天,视频聊天,文件传输等三维聊天,还发展了短信发送,无线聊天,在线游戏等功能,可以预见在不久的将来,聊天软件将成为人们通过因特网相互联系和娱乐的主要平台。然而这些软件的一个共同的缺点是采用了 c/s 的结构模式,如果服务器出现故障,则这个聊天系统都将瘫痪。该毕业设计课题为基于 net
6、bios 的聊天工具的设计与实现,它是在 netbios 通信和文本聊天的基础上来实现语音聊天,文件传输。从一开始就要求该聊天软件能够自建服务器,它能够被应用在一个个独立的自治系统中,灵活性很大。该项目的开发过程大致是这样的,可以分为三个大的阶段:第二阶段就是软件的设计与实现。从 5 月 1 号到 5 月 3 号,是该软件的需求分析与初步设计以及实现阶段,这是该软件的第一个模型。从 5 月 4 号到 5 月 6 号是对软件的结构进行改进的阶段,这是该软件的第二个模型。从 5 月 6 号到 5 月 10 号,加入聊天功能。从 5 月 11 日至 5 月 12 日,对界面做了改进。从这也可以说,该
7、软件的总体开发模式采用原型演化的开发模型,因为这个项目只是个人开发,而且先前对有些知识不是很了解,所有这些都是采用原型开发的必然因素。现在该项目已经基本上完成了所有的要求,还扩展了一些功能。软件由我个人负责,采用原型的开发模型,分成通信模块,文本聊天的模块等主要的汤明:基于 NETBIOS 的聊天工具2几大模块。该项目规模适中,适合一个人工作。软件开发到最后提交总共用了 15 天。作为如今流行的聊天软件之一 QQ,功能已经非常强大,基本上朝着三个大的方向发展,即个人及时通信,企业实时通信和娱乐资讯。它的功能主要有:可以看出,聊天软件的发展方向是三维化,人性化,综合化。作为另一种聊天软件形式,网
8、页聊天室也受到用户的普遍欢迎。网页聊天室的优点就是很好的利用了浏览器的功能,用户不需要安装任何新的软件,即可加入聊天室聊天。现在的网页聊天室除了文本聊天之外,语音聊天也很常见。由于其客户端的简化,其功能必然受到限制。不管是 QQ,还是网页聊天室,其最大的缺陷就是服务器固定,用户必须连接上服务器。如果想在一个自治系统之内(一个孤立的网络)通信,NetMeeting 是一款不错的软件。本项目的开发目标也是如此,即追求服务器的灵活性,任何用户都可以建立自己的服务器。在 windows 下,网络通信的技术有 netbios 编程,重定向器、邮槽和管道,Winsock编程以及 WinInet API 等
9、。下面简单的介绍一下 netbios 和 winsock 编程技术。网络基本输入/输出系统(Network Basic Input/Output System,NetBIOS)是一种标准的应用程序编程接口(API) 。对应于 OSI 模型,NetBIOS 主要在会话和传输层发挥作用。NetBIOS API 实施方案适用于为数众多的网络协议,使得编程接口“与协议无关” 。NetBIOS API 中的两个主要的概念是 LANA 编号和 NetBIOS 名。LANA 编号对应于物理网卡和传输协议的唯一组合 NetBIOS 名长度 16 个字符,其中第 16 个字符作为特殊用途保留下来。在 Win32
10、 环境下,针对每个可用的 LANA 号,每个进程都会为其维持一张NetBIOS 名字表。若为 LANA 0 增添一个名字,意味着应用程序只能在 LANA 0 上同客户端建立连接。另外,NetBIOS 名分为唯一名字和组名两种类型。 NetBIOS 同时提供了“面向连接”服务以及“无连接”服务。有了上面的概念,我们来看看 NetBIOS API 的设置,只有一个函数:UCHAR Netbios(PNCB Pncb);其中 PNCB 是指网络控制块的指针,该网络控制块包含了 Netbios 命令和所需的参数。健雄职业技术学院毕业设计(论文)3在为通信双方开发应用程序的情况下,套接字是相当有用的。可
11、以说网络通信的基石是套接字,一个套接字是通信的一端。在 WINDOWS 系统中进行编程时,总是需要使用很多系统提供的应用程序接口来调用系统功能,或者与系统交互,在 WINDOWS 系统中专门针对网络编程的接口WinSock API。该接口包含了一组网络 I/0 和获取网络信息的库函数,这些函数均需要套接字作为一个参数。实际上,一个套接字包含了本地协议端口,本地主机地址,远地协议端口,远地主机地址,协议这 5 种信息,是网络通信中的一个端点的抽象。WINSOCK 规范不仅包含了人们所熟悉的 Berkeley Socket 风格的库函数,也包含了一组针对 windows 的扩展库函数,以使程序员能
12、充分的利用 windows 消息驱动机制进行编程。这两种编程接口各有优缺点,下面是对它们的一个比较:该方案采用 winsock 作为底层网络通信技术来实现聊天室聊天,广播聊天,二人私聊和文件传输。该方案要求在 TCP/IP 协议的基础上运行。由于 winsock 对广播传输,建立连接传输,数据报传输的支持,该方案是可行的。该方案采用 directsound 技术来实现语音的采集,回放。Directsound 语音技术作为directx 的一个组件,已经非常的成熟,可以在 API 层面上进行录制声音,并把声音数据录制到内存中去用于远程传输。因此该方案也是可行的。该方案利用现在成熟的网页技术来实现
13、聊天工具的开发。该方案不再需要对底层网络通信进行开发,因为有 HTTP 的很好的支持。因此工作重心转到语音聊天的开发和服务器端的开发。对于网页开发,现在有.NET 等工具很好的支持,因此该方案是可行的,但是必将导致服务器固定这一缺点,不符合该项目提出的初衷。本聊天工具最终采取的方案为 NETBIOS +C6.0,即底层通信技术采用 NETBIOS 通信,开发工具为 C#。NETBIOS 对于跨平台,跨协议有很好的支持,而且以名字标示主体,大大简化编程。要求该聊天工具可以实现服务器自建,聊天等功能。利用 NETBIOS 通信技术的一个聊天工具。具体目标见下面:要求该聊天工具能够适用于多种协议上,
14、而且能够在任意个自治系统之内使用,要求汤明:基于 NETBIOS 的聊天工具4服务器自建非常灵活。以下测试的所用的机器配置:1.2 项目开发的主要内容设计并实现基于 NETBIOS 的文本聊天程序包括二人聊天, netbios 通信,身份验证及C# 接口实现等;设计并实现基于 NETBIOS 的语音聊天。1.3 项目开发的意义本项目是作为本科的毕业设计课题提出来的,它规模适中,适合于个人开发,能够锻炼同学的学习新知识能力,锻炼同学的编程能力,锻炼同学的软件工程的思维方式。它的具体意义见下面: 聊天工具已经被广大用户使用,由于服务器固定的局限性,当服务器瘫痪或到服务器的网络中断时,将使聊天系统崩
15、溃,该聊天工具正好弥补了这个缺陷,可以用于任一个自治系统中,灵活性大,实用性强。 目前,计算机的发展离不开网络这一方向,网络将大大扩展计算机的功能,研究计算机在网络方面的技术以及应用,挖掘计算机的网络潜能,将能够大大提高我们对计算机的本身的认识,同时也能加深对计算机网络的认识。 网络的一大应用就是用于用户之间联络的聊天工具,通过对聊天工具的开发,我们将了解计算机如何通过网络相互通信以及在此相互通信的基础上实现的应用程序级的协议。1.4 项目开发的过程第一个阶段是该软件的计划,分析和调研阶段,在这个阶段里,大致的学习了相关的技术,分析了相关的聊天软件的性能和功能。这个阶段大致到 2009 年 5 月 14 号结束。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。