UDP局域网QQ聊天程序设计说明书.doc

JSJ02-011@UDP局域网QQ聊天程序

收藏

资源目录
跳过导航链接。
JSJ02-011@UDP局域网QQ聊天程序.zip
JSJ02-011@UDP局域网QQ聊天程序
使用说明.doc---(点击预览)
UDP局域网QQ聊天程序设计说明书.doc---(点击预览)
ImageListPopupDemo
Backup
App.ico
AssemblyInfo.cs
emoticons.bmp
Form1.cs
Form1.resx
imagelist.bmp
ImageListPopup.cs
ImageListPopup.resx
ImageListPopupDemo.csproj
ImageListPopupDemo.csproj.user
ImageListPopupDemo.sln
ImageListPopupDemo.suo
bin
Debug
obj
ImageListPopupDemo.csproj.FileListAbsolute.txt---(点击预览)
ImageListPopupDemo.csproj.FileList.txt---(点击预览)
Debug
_UpgradeReport_Files
Thumbs.db
UpgradeReport.css
UpgradeReport.xslt
UpgradeReport_Minus.gif
UpgradeReport_Plus.gif
App.ico
AssemblyInfo.cs
emoticons.bmp
Form1.cs
Form1.resx
imagelist.bmp
ImageListPopup.cs
ImageListPopup.resx
ImageListPopupDemo.csproj
ImageListPopupDemo.csproj.user
ImageListPopupDemo.sln
ImageListPopupDemo.suo
UpgradeLog.XML
MatureVoice
bin
Debug
Release
obj
MatureVoice.csproj.FileListAbsolute.txt---(点击预览)
MatureVoice.csproj.FileList.txt---(点击预览)
Debug
Release
Properties
AssemblyInfo.cs
Resources.Designer.cs
Resources.resx
Settings.Designer.cs
Settings.settings
ClassDiagram1.cd
ClassDiagram2.cd
Form1.cs
Form1.Designer.cs
Form1.resx
Form2.cs
Form2.Designer.cs
Form2.resx
ListUsers.cs
MatureVoice.csproj
MatureVoice.sln
MatureVoice.suo
Media Player.ico
NetChat.cs
Program.cs
VoiceCapture.cs
MatureVoiceEXE
DevComponents.DotNetBar2.dll
MatureVoice.exe
Microsoft.DirectX.DirectSound.dll
Microsoft.DirectX.dll
MyQQ(code)
MyQQClient
MyQQClient
MyQQClient.sln
MyQQClient.suo
UdpSendFile.cs
MyQQServer
MyQQServer
MyQQ.sln
MyQQ.suo
QQClass
bin
obj
Properties
ClassForms.cs
ClassMsg.cs
ClassOptionData.cs
ClassSerializers.cs
ClassUserInfo.cs
ClassUsers.cs
CompressImage.cs
Publec_Class.cs
QQClass.csproj
UDPSocket.cs
UDPSocket.Designer.cs
Video.cs
UdpSendFileDemo-2
ReceiveFileDemo
bin
obj
Properties
Form1.cs
Form1.Designer.cs
Form1.resx
Program.cs
ReceiveFileDemo.csproj
UdpSendFile
bin
obj
Properties
BufferHelper.cs
Command.cs
IDataCell.cs
ReadFileBufferEvent.cs
ReadFileObject.cs
ReceiveDataEvent.cs
ReceiveFileManager.cs
RequestSendFileEvent.cs
SendCell.cs
SendFileManager.cs
TraFransfersFile.cs
TraFransfersFileLogEvent.cs
TraFransfersFileStart.cs
UdpPeer.cs
UdpReceiveFile.cs
UdpSendFile.cs
UdpSendFile.csproj
UdpSendFileDemo
bin
obj
Properties
Form1.cs
Form1.Designer.cs
Form1.resx
Program.cs
UdpSendFileDemo.csproj
ReceiveFileDemoReceiveFile.png
ReceiveFileDemoRequest.png
ReceiveFileDemoStart.png
Thumbs.db
UdpSendFileDemo.sln
UdpSendFileDemo.suo
UdpSendFileDemoSend.png
UdpSendFileDemoStart.png
压缩包内文档预览:(预览前20页/共46页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:508056    类型:共享资源    大小:10.81MB    格式:ZIP    上传时间:2015-11-10 上传人:QQ28****1120 IP属地:辽宁
12
积分
关 键 词:
毕业设计
资源描述:
JSJ02-011@UDP局域网QQ聊天程序,毕业设计
内容简介:
摘 要 随着网络技术的发展及人们生活的需求,网络聊天已越来越受到人们的 青睐 。 网络聊天已经成为人们工作生活中传递信息、交流感情的重要工具 , 给人们带来了很大的方便 。 本 设计 开发 的是 一个 局域网 QQ 聊天软件 ,运用软件工程的设计流程, 使用现在比较普遍和流行的 C#语言,采用面向对象的方法, 综合运用数据库编程技术、 多线程开发 技术、网络通讯技术,以 Microsoft Visual Studio 2005 作为系统前台应用程序开发工具, Microsoft SQL Server 2000 作为后台数据库管理系统, 在 Windows XP 平台下进行开发。 本 局域网 QQ 聊天 软件 采用 服务器端 /客户端( C/S)模式 。 客户端采用 UDP 与服务器连接,客户端之间 也是 通过 UDP 互相通讯。 服务器端主要用于开启和关闭 UDP 协议 的 监听服务,还可以查看局域网内已注册的所有的用户以及他们的在线状态。客户端分为注册窗口、登录窗口、 QQ 窗体主界面以及聊天界面。服务器端要先开启监听服务,客户端才可以进行登录,然后才可以与其他登录的在线用户进行文本信息的聊天, 还可以进行点对点的语音聊天,视频 聊天和文件传输 ,还可以进行拍照和录像等 。 此外,还对该软件进行了皮肤的加载 以及打包成安装源。 该软件运行稳定,界面美观、操作简便。 在局域网内部使用该 局域网 QQ 聊天软件 ,可以方便人与人 之间的沟通、交流;可以大大提高企业的工作效率; 拉近人与人之间的关系。 关键词: 局域网;聊天软件;客户端;服务器端; UDP 协议 nts毕业设计 (论文 )报告用纸 Abstract With the development of networking technology and the living demand of people, chatting on network is more and more acceptable by people. Internet chat has become an important tool to transmission of information and exchange of feelings in our life, it brings a great convenience. The topic of this paper is going to talk about that to develop the local area network QQ chat software. This local area network chat software using the design stream of the software project, using the C# language which is very common and popular, using the object-oriented approach, the technology of the database programming, multi-threading development technology and the network communication technology, makes Microsoft Visual Studio 2005 as the front application design tool, Microsoft SQL Server 2000 are used as the background DBMS( the database management system ), and it was programmed in the Windows XP System. The local area network QQ chat software uses the server and client (C/S) mechanism. And the client connects the server using UDP, and they communicate each other by UDP. Server-side is mainly used to open and close the UDP protocol monitoring service, and you can also look over all the registered users and their online status whom in the local area network. Client is divided into registration window, the login window, the main QQ form and the chat form. If the client wants to log in, the server monitoring service must first open the listening service, then the client can chat with the others which have already logged, and also can voice chat, video chat and files transfers, and also can take pictures and videos. In addition, the software has been load the beautiful skin and package into the installation source. This software has an interface aesthetics, stable operation, simple operation. Using QQ software in the LAN internal can help people to communicate with others easily, can greatly improve the efficiency of the enterprises, close relationships between people. Key Words: Local Area Network; Chat Software; Client; Server-side; UDP protocol nts毕业设计 (论文 )报告用纸 目 录 引言 .1 1 系统概述与需求分析 .2 1.1 系统概述 . 2 1.2 需求分析 . 2 1.2.1功能需求 3 1.2.2性能需求 3 1.3 可行性分析 . 4 2 系统总体设计 .5 2.1 相关开发技术的原理性说明 . 5 2.1.1.NET Framework 和 C# .5 2.1.2SQL Server 2005. 6 2.1.3UDP协议简介 6 2.1.4Socket简介 .6 2.2 系统功能结构 . 7 2.3 业务流程图 . 8 2.4 程序运行环境 . 8 3 数据库以及类库的详细设计与实现 .9 3.1 数据库的创建 . 9 3.1.1数据库分析 9 3.1.2数据库创建 9 3.1.3数据库概念设计 .9 3.1.4数据库逻辑结构设计 .9 3.1.5文件夹组织结构 .10 3.2 类库的设计 . 10 4 客户端模块的详细设计及实现 . 12 4.1客户端注册模块的设计 . 12 4.1.1客户端注册模块概述 .12 4.1.2客户端注册模块技 术分析 .13 4.1.3客户端注册模块实现过程 .13 4.2 客户端登陆模块设计 . 14 4.2.1客户端登陆模块概述 .14 4.2.2客户端登陆模块技术分析 . 14 4.2.3客户端 登陆模块实现过程 .14 nts毕业设计 (论文 )报告用纸 4.3 客户端 QQ模块设计 15 4.3.1客户端 QQ模块概述 .15 4.3.2客户端 QQ模块技术分析 .15 4.3.3客户端 QQ模块实现过程 .16 4.4 客户端消息发送模块设计 . 17 4.4.1客户端消息发送模块概述 .17 4.4.2客户端消息发送模块技术分析 .18 4.4.3客户端消息发送模块实现过程 .18 5 服务器端模块的详细设计与实现 . 23 5.1 服务器端控制台窗体概述 . 23 5.2 服务器端控制台窗体技术分析 . 23 5.3 服务器端控制台窗体实现过程 . 23 6 系统特色及关键技术 . 24 7 结论 . 25 谢 辞 . 28 参考文献 . 29 附 录 . 30 nts毕业设计 (论文 )报告用纸 第 1 页 共 42 页 引言 在 Internet 飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。 网络聊天已经成为人们工作生活中传递信息、交流感情的重要工具。网络版的聊天软件种类繁多,如 QQ、 OICQ、MSN 等, 给人们带来了很大的方便,也使世界好象一下子缩小了,不管在哪里, 只要能上网,打开这些软件,就可以给朋友发信息,不管对方是否也同时在线,只要知道对方的 号码 。但是这些聊天软件也存在以下不足:用户必须连接 Internet;用户在工作时容易沉迷于网络聊天。为了方便单位企业内部的信息交流,减少不必要的财力和人力资源浪费,开发一个局域网聊天软件是非常必要的。 随着科学技术的不断提高 ,计算机科学日渐成熟 ,其强大的功能已为人们深刻认识 ,它已进入人类社会的各个领域并发挥着越来越重要的作用。 计算机应用技术在 日益 的 普及,网络也遍及到 生活的每个角落,很好的利 用这些资源,将为 人 们的工作和学习,带来极大的方便和提高工作效率。 现在, 企业、机关、学校 都 建立起了自己的局域网 ,在局域网,虽然可以通过文件共享的方式进行通讯,但单单使用这种方式,是非常不方便的,首先,在局域网里的网上邻居里,只能看到机器名,不清楚对方是谁,也不知道对方机器里有什么资源可以共享,而且,当局域网的机器很多时,这种方式更加麻烦。于是,就想到做一个在局域网里的聊天软件,在局域网里, 可以通过它,实现在局域网里方便的联络,进行文件传输,消息的发布, 还可以语音、视频 等。所以,开发一个局域网里的 基于 C/S 模式的 QQ 聊天 软件,是十分必要。 在学 校建立起校园网里,局域网聊天系统可以起到方便同学之间,教师之间,师生之间的相互联络,这样,不用上 Internet,可以节省资源,在学校这个大环境里,就可以同学之间联系,联络感情,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,教师讨论问题。 并能最大限度地利用现有的网络资源,极大地提高工作效率。 为了适应校园网的建设,实现校园网内进行消息发布,学生交流,师生交流,网上作业等功能。 在公司企业建立起的局域网里,应用于局域网内企业(组织)内部成员之间的交流领域,在没有因特网的支持下也可以进行即时通讯,亦因此使 之更安全、更高效;同时因为它界面简洁实用,没有娱乐功能,所以简单易用,是企业(组织)成员更加专注于工作,减少不必要的财力和人力资源浪费。 因此,本毕业设计开发了一个局域网 的 QQ 聊天软件。该聊天软件 分为服务器端和客户端, 采用的 是 C#语言,在 Windows XP 系统下,使用的开发工具 是 Microsoft Visual Studio 2005, 运行于 .NET 平台上,使用 SQL Server 2000 作为后台的数据库管理。为实现和方便客户端之间的通信,在客户端进行了人性化的界面设计 ,用户可以进行注册,注册后,凭借用 户名和密码就可以登陆到 QQ 聊天界面,然后就可以与 其他的在线用户进nts毕业设计 (论文 )报告用纸 第 2 页 共 42 页 行局域网内部的文本聊天、语音 聊天 、视频 聊天 和文件的传输。 1 系统概述 与 需求 分析 1.1 系统概述 该局域网 QQ 聊天软件操作简单方便、界面简洁。该系统分为客户端和服务器端。前台为客户端,包括的主要功能有用户注册、用户登陆、 文字聊天、文件传输 、 语音聊天 和 视频聊天等功能 。后台为服务器端,主要功能包括:数据库的建立、查看用户的状态、管理用户的资料、开启和关闭服务器的监听等功能。 服务器端直接与数据库相连,服务器端要先开启监听,然后客户端登陆的时候要与服务 器端进行通信,服务器端进行验证客户端的用户名和密码。客户端经过服务器端的验证后,才可以登陆成功。本软件还对客户端的各个窗口进行了皮肤加载,使界面看起来更加的美观、大方。本局域网QQ 聊天软件还具有系统托盘和右键菜单的功能。每个客户端只能进行一次并且只需注册一次。用户登录成功之后,可以看到局域网内所有的在线和不在线的的注册用户。用鼠标双击打开某一个在线的用户的聊天窗口,就可以与该用户进行文字信息的互发与接收,可以利用本地的摄像头进行录像和拍照,还可以与对方进行点对点的视频、语音和传输文件等操作。本系统运行比较的 稳定、安全可靠。此外,本软件还对源程序进行了打包成安装源,便于用户使用的时候进行安装。安装源也分为客户端和服务器的安装源。一般的局域网用户只需要安装客户端即可。 1.2 需求分析 近年来,随着全球信息化进程的不断发展,网络也在飞速发展。出于高效、快速地处理各种事务的目的,越来越多的企业在其内部使用局域网来进行工作。在内部局域网的帮助下,企业得以简化信息流程,提高信息交换的速度,从而提高工作效率。然而,随着企业规模的不断扩大,业务量的不断增加,企业内部的信息越来越私密,企业只希望员工通过内部局域网进行沟通与交 流,避免企业内部机密通过 Internet 泄露到外部。为了解决上述矛盾,人们提出了开发局域网聊天软件的构想,通过局域网聊天软件,企业员工可以随时的与局域网内部的用户进行即时消息的传递,召开网络会议,进行语音视频和文件的传输等,有利于提高工作消息效率,同时又保护了企业内部信息的安全性。 本局域网 QQ 聊天软件 主要 是 采用 Microsoft Visual Studio 2005 结合 SQL Sever 2000数据库 技术,采用 C#语言来 实现各 功能模块的开发。开发出来的软件必须结构比较的合理、功能比较的齐全、使用起来比较 的方便。 该局域网 QQ 聊天软件 开发的重点和 难点是 客户端和服务器端与数据库的连接,建立连接后还要保证通信的畅通性和正确性。此外要实现在两个客户端之间 实现 点对点的 文件传输,语音聊天以及视频等功能 ,也是本局域网 QQ 聊天软件开发的难点。此外,还要 着重处理好各模块间的划分以及模块间的连接。在开发中应注意系统性能的优化,数据库的安全和优化,尽可能的提高系统的安全性和整个系统的运行的稳定性。同时,开发出来的软件系统还必需功能完备、安全性高、易于维护和使用, 操作 也要 简单 、方便, 界面 也要 简洁 、美观、大方 。 nts毕业设计 (论文 )报告用纸 第 3 页 共 42 页 1.2.1功 能需求 网络聊天已经成为人们工作生活中传递信息、交流感情的重要工具。网络版的聊天软件种类繁多,如 QQ、 OICQ、 MSN 等,实现了随时随地上网聊天,给人们带来了很大的方便。但是这些聊天软件也存在以下不足:用户必须连接 Internet;用户在工作时容易沉迷于网络聊天。为了方便单位企业内部的信息交流,减少不必要的财力和人力资源浪费,开发一个局域网聊天软件是非常必要的。 开发该局域网聊天软件需要完成以下的几个要求,以便于用户进行操作。这样才能使该软件 易学易用 、更加的人性化 。 (1) 合理的设计数据库 尽量合理地减少 数据库数据的冗余,使重复的数据保持在最小限度,这样将不必要的多占用存储空间,减少产生混乱影响的危险,还能提高计算机的运行速度。 (2) 设计出友好的界面 界面的友好与否是用户评价一个软件优劣的重要方面之一,使用户有一个良好的心情。 另外窗口界面 的 各个控件布局要合理,美观。要充分的利用 Microsoft Visual Studio.Net 2005 提供的强大的功能 。 (3) 根据局域网对 QQ 聊天软件的要求,本 QQ 聊天软件需要实现以下的目标: 操作简单方便、界面简洁美观 每个客户端只能注册一次 可以在局域网中实现文字的传输 可以实现多用户的信息通信 可以实现两个用户之间的点对点的语音聊天 可以实现两个用户之间的点对点的视频聊天 可以使用本地的摄像头的进行录像和拍照 可以实现两个用户之间点对点的文件的传输和接收 系统运行要比较的稳定、安全可靠 1.2.2性能需求 ( 1) 可靠性高,能在由于系统问题或其它原因产生错误后,作出相对应处理,比如网络初始化失败、服务器 未启动 等,可以提示用户安全退出本程序,在出现不可知的错误以后,可以尽量安全的退出程序。在程序的设计过程中,要求能尽可 能多的设想到用户使用过程中可能发生的事件,并能在判断事件后做出相应的处理,使程序具有较高的容错性能。 ( 2)易 操作性,程序简单易懂,容易上手使用。设计界面是,简化界面的复杂性,模拟 QQ 等现有即时通讯工具的界面,使用户能很容易看懂并使用。 ( 3) 模块化设计此软件的功能,不同的模块实现不同的功能,使得软件易于以后nts毕业设计 (论文 )报告用纸 第 4 页 共 42 页 的维护与扩展,在以后可以更好的完善本软件的功能,更方便于在工作中的应用。 1.3 可行性分析 可行性研究的目的就是要用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性研究 可以在较高的层次以比较抽 象的方式讨论系统的分析和设计。本局域网QQ 聊天软件的可行性研究主要从技术 可行性、经济可行性、 开发可行性和现有的条件四 个方面来进行 讨论 。 ( 1) 技术可行性 随着国内软件开发的日益发展壮大,各种中小企事业单位 和学校等部门 已具备独立开发各种类型的 应用软件的能力,能够满足不同行业的特别的需求。而本局域网 QQ 聊天软件其在组织关系上并不存在着很大 的复杂性,繁琐性, 从整个系统的技术构成上来看,它 是属于一个 与数据库应用有关的软件,使用的是 UDP 协议。只要对 C#语言比较的熟悉,对 UDP 协议以及 Microsoft 的 API 函数相 对比较了解的话,开发出这样的一个系统,并不存在很大的困难。 ( 2) 经济可行性 对于整个系统而言, 并不需要花费太多的经费。只要一两个人或者一个小团队,即可以完成系统的开发。 ( 3) 开发可行性 本局域网 QQ 聊天软件 采用 的是 Microsoft Visual Studio.Net 2005 作为开发工具 , 利用 SQL Server 2000 对数据库表进行存储,提供数据之间的操作。 首先 Microsoft Visual Studio.Net 2005 是一个开放的协作式系统, 可以连接许 多比较常用的数据库。其次它具有可视化的 开发环境,使代码的编写比较的 直观,并且在可视化环境下的调试和维护也相对 比较 容易。再次 Microsoft Visual Studio.Net 2005 提供了大量 的 控件,这既丰富了应用程序的表达能力,也加快了项目的开发速度。 ( 4) 现有设备及实验条件: 计算机 : Genuine Intel(R) CPU 2140 1.60GHz 1G 内存, 160G 硬盘 系统 : Microsoft Windows XP Professional 版本 2002 Service Pack 3 软件: Microsoft Visual Studio 2005 Microsoft SQL Server 2000 以上的设备,对于开发出一个功能比较完备,性能比较完善的局域网 QQ 聊天软件,已经足够了。 nts毕业设计 (论文 )报告用纸 第 5 页 共 42 页 2 系统 总体 设计 2.1 相关开发 技术 的原理性说明 2.1.1.NET Framework 和 C# 本 局域网 QQ 聊天软件 的开发采用 的是 C/S 结构, 基于 .NET 开发环境下,使用 C#语言进行开发。 C#是一种精确、简单、类型安全、面向对象的语言 , 是 微软公司 发布的一种面向对象的、运行于 .NET Framework 之上的高级 程序 设计语言。并定于在微软职业开发者论坛 (PDC)上登台亮相 .C#是微软公司研究员 Anders Hejlsberg的最新成果 .C#看起来与 java 有着惊人的相似 ;它包括了诸如单一继承 ,接口 ,与 Java 几乎同样的语法 ,和编译成中间代码再运行的过程 .但是 C#与 Java 有着明显的不同 ,它借鉴了 Delphi 的一个特点 ,与 COM(组件对象模型 )是直接集成的 ,而且它是微软公司 .NET windows 网络框架的主角 。 C#的特点: ( 1) 完全面向对象。 ( 2) 支持分布式, 处理过程 可以 分布在客户机 和服务器上。 C#能很好 的 解决分布式问题。 ( 3) 跟 Java 类似, C#代码经过编译后,成为了一种 IL(中间语言)。在运行时,再把 IL 编译为平台专用的代码。 ( 4) 健壮, C#在检查程序错误和编译与运行时错误一点也不逊于 Java, C#也用了自动管理内存机制。 ( 5) C#不像 Java 那样完全摒弃了指针和手动内存管理。 C#默认情况下是不能使用指针的,程序员在有必要时可以打开指针来使用。这样可以保证编程的灵活性。 ( 6) 安全性: C#的安全性是有 .net 平台来提供的。 C#代码编译后成为 IL语言。是一种受控代码, .net 提供类型安全检查等机制保证代码是安全的。 ( 7) 可移植性:由于 C#使用类似 Java 的中间语言机制。使得 C#也跟 Java 类似,可以很方便的移植到其他系统。在运行时,再把中间代码编译为适合特定机器的代码。 ( 8) 解释性: C#也是一种特殊的解释性语言。 ( 9) 高性能: C#把代码编译成中间语言后,可以高效的执行程序。 ( 10) 多线程:与 Java 类似,可以由一个主进程分出多个执行小任务的多线程。 ( 11) 组件模式: C#很适合组件开发。各个组件可以由其他语言实现的,然后集成在 .net 中。 .NET Framework 类似于 Java 虚拟机,它不但 使 Internet 上运行的应用程序更容易被开发,而且也可用于开发运行于 Windows 桌面上的传统业务应用程序。它为创建、部署以及管理安全、强大、高效的应用程序提供了前所未有的最大支持。 .NET Framework是一个创建、部署和运行应用程序的多语言平台环境, .NET 支持的语言使用的基类库由 .NET Framework 类库( FCL)提供。 C#是 Microsoft 公司设计的一种编程语言。它松nts毕业设计 (论文 )报告用纸 第 6 页 共 42 页 散地基于 C/C+,并且有很多方面和 Java 类似。 Microsoft 是这样描 述 C#的: C#是从 C和 C+派生来的一种简单、现代、面向对象和类型安全的编程语言。 C#主要是从 C/C+编程语言家族移植过来的, C 和 C+的程序员会马上熟悉它。 2.1.2SQL Server 2005 SQL Server 数据平台 SQL Server 是一个全面的、集成的、端到端的数据解决方案,它为企业中的用户提供了一个安全、可靠和高效的平台用于企业数据管理和商业智能应用 。 SQL Server 2005 为 IT专家和信息共作者带来了强大的、熟悉的工具,同时减少了在从移动设备到企业数据系统的多平台上创建 、部署、管理及使用企业数据和分析应用程序的复杂度 。 通过全面的功能集、和现有系统的集成性、以及对日常任务的自动化管理能力, SQL Server 2005 为不同规模的企业提供了一个完整的数据解决方案。 2.1.3UDP 协议简介 本局域网 QQ 聊天软件使用的是 UDP 协议。 用户数据报协议 ( User Datagram Protocol) 是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。是一个简单的面向数据报的传输层协议, IETF RFC 768 是 UDP 的 正式规范。 UDP 协议基本上 是 IP 协议与上层协议的接口。 UDP 协议适用端口分别运行在同一台设备上的多个应用程序。 与 TCP 不同, UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单, UDP 头包含很少的字节,比 TCP 负载消耗少。 UDP 适用于不需要 TCP 可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。 UDP 是传输层协议,服务于很多知名应用层协议,包括网络文件系统( NFS)、简单网络管理协议( SNMP)、域名系统( DNS)以及简单文件传输系统( TFTP)、动态主机配 置协议 (DHCP)、路由信息协议 (RIP)和某些影音串流服务等等。 2.1.4Socket简介 选定 Windows XP 平台开发网络通信程序,可以选择 Windows 的 Sockets 编程接口,Windows Sockets 是一套开放的、支持多种协议的 Windows 下的网络编程接口。现在的Winsock 已经基本上实现了与协议无关,可以使用 Winsock 来调用多种协议的功能,但较常使用的是 TCP/IP 协议。 Windows sockets 无疑是 进行网络编程的利器。所有的Windows Sockets 实现都支持流套接 口和数据报套接口。应用程序调用 Windows Sockets的 API 实现相互之间的通讯。 Windows Sockets 又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。 Socket,简称套接字,用于实现网络上客户和服务器之间的连接。也就是说网络上两个或两个以上双工方式通信的进程之间总有一个连接,这个连接的端点成为套接字,套接字是在比较低的层次上通信的。 具体的说:一个服务器应用程序一般侦听一个特定的端口等待客户端的连接请求,当一个连接请求到达时,客户端和服武器端建立一个通信连接,在连接过程中, 客户端nts毕业设计 (论文 )报告用纸 第 7 页 共 42 页 被分配一个本地端口与一个 Socket 建立连接,客户端通过写 Socket 来通知服务器,以读 取 Socket 中的信息,类似的服务器也获得一个本地端口,它需要一个新的端口号来侦听原始端口上的其他连接请求。服务器也通过它的本地端口连接一个 Socket, 通过读写和客户端通信。 一般的 Socket 网络编程的函数调用步骤如下: ( 1)创建套接字 应用程序在使用套接字前,首先必须 创建 一个套接字 ,以便系统分配相应的资源给它。 ( 2)指定本地地址 当一个套接字 被 创建后,存在一个名字空间 (地址族 ),但它没有被命名。 需要 将套接字地址(包括本地主机地址和本地端口地 址)与所创建的套接字号联系起来,即将名字赋予套接字,以指定本地 相关。 ( 3)建立套接字连接 即开启监听功能。 监听远程客户端的请求。 ( 4)数据传输 当一个连接建立以后,就可以 进行 数据传输 了 。 分为数据的发送和接收。 ( 5)关闭套接字连接 也就是关闭监听,并释放分配给该套接字的资源。 2.2 系统功能结构 根据局域网 QQ 聊天软件的特点,可以将其分为客户端和服务器端两个部分进行设计。客户端主要用于用户的注册、登陆和信息的发送、语音、视频和文件的传输等;服务器端主要用于记录用户注 册的用户名、密码、 IP 地址、端口号以及用户在线的状态等信息,并作为客户端向远程客户端发送信息的一个中转站。 UDP 局域网聊天程序客户端与服务器端的功能结构图如图 2-1 所示: 图 2-1 局域网 QQ 聊天程序 功能结构图 nts毕业设计 (论文 )报告用纸 第 8 页 共 42 页 2.3 业务流程图 UDP 局域网聊天程序是由客户端和服务器端组合而成的,业务流程图如图 2-2所示。 客户端登陆的时候,先判断用户是否已经进行过了注册。如果用户已经注册后,则直接进入到登陆窗口。如果用户没有注册过,则跳转到注册窗口,让用户先进行注册。用 户注册需要填写服务器 IP 地址、端口号、用户名和密码等信息。注册完成后,客户端与远程服务器取得通信,将注册的信息发送到远程的服务器端进行注册保存。客户端在本地将生成一个 Server.ini 文件,该文件主要是记录服务器的 IP 地址和端口号以及注册用户的用户名。当用户下一次登陆的时候就是通过读取 Server.ini 文件,来取得服务器的 IP 地址和端口号,然后再根据该 IP 地址和端口号与服务器建立通信。注册完成后,然后就会跳转到登陆窗口。用户只要输入正确的用户名和密码,就可以登陆成功。就可以与服务器端建立通信。登陆之后, 就进入到了 QQ 界面。双击某一个在线的用户,就可以与该用户进行聊天、语音、视频和文本的传输。 图 2-2 局域网 QQ 聊天软件 业务流程图 2.4 程序运行环境 本局域网 QQ 聊天软件运行的环境具体如下: ( 1)系统开发平台: Microsoft Visual Studio 2005 ( 2)系统开发语言: C# ( 3)数据库管理系统软 件: Microsoft SQL Server 2000 nts毕业设计 (论文 )报告用纸 第 9 页 共 42 页 ( 4)运行平台: Windows XP ( 5)运行环境: Microsoft.NET Framework SDK v2.0 3 数据库 以及类库的详细 设计 与实现 3.1 数据库 的创建 在开发应用程序时,对数据库的操作是必不可少的,数据库设计是根据程序的需求及其实现功能所制定的。 3.1.1数据库分析 本局域网 QQ 聊天软件后台数据库主要是用于记录注册人员的编号、用户名、密码、IP 地址、端口号和在线和离线的状态等信息。使用 Microsoft SQL Server 2000 作为后台数据库。数据库命名为 db_MyQQData,其中包含了一张数据表 db_CurrencyUser,用于存储当前已注册的用户的基本信息。 3.1.2数据库创建 数据库 db_MyQQData 的具体创建步骤如下: ( 1)选择“开始 /所有程序 /Microsoft SQL Server/企业管理器”命令,打开 SQL Server Enterprise Manager 数据库窗体。 ( 2)在 SQL Server Enterprise Manager 数据库窗体的( local)( Windows NT) 中,用鼠标右键单击“数据库”文件,在弹出的快捷菜单中选择“新建数据库”命令,打开“数据库属性”对话框,在该对话框的“名称”文本框中输入要创建的数据库名称“ db_MyQQData”,单击“确定”按钮创建数据库。 3.1.3数据库概念设计 在 QQ 用户登陆时,为了可以在服务器端返回所有注册用户的信息,可以在服务器端的数据库中创建一个用户注册表,用于记录注册用户的 IP 地址、端口号、在线状态、用户名和密码等基本信息。用户注册表的实体 E-R 图如图 3-1 所示。 图 3-1 用户注册表的实体 E-R 图 3.1.4数据库逻辑结构设计 根据上面设计好的 E-R 图,可以在数据库中创建相应的数据表,此外根据注册用户nts毕业设计 (论文 )报告用纸 第 10 页 共 42 页 的实体 E-R 图来创建数据表。 数据库创建完成后,在 db_MyQQData 数据库的下拉节点的“表”节点上单击鼠标右键,在弹出的快捷菜单中选择“新建表”命令,将在 SQL Server Enterprise Manager数据库窗体中弹出“新表”对话框。 在“新表”对话框的“列名”中输入 ID、 IP、 Port、 Name、 PassWord 和 Sign 字段,将其数据类型分别设置为 int、 varchar( 20)、 int、 varchar( 20)、 varchar( 20)和 int,并将 ID 字段设为主键和自动编号,然后在各“列”的“描述”文本框中对应字段进行中文解释。 字段名称和数据类型设置完成后,单击保存按钮,弹出“选择名称”窗口,在该窗口中输入创建数据表的名称 db_CurrencyUser,单击“确定”按钮,就完成了对本局域网 QQ 聊天软件后台数据库的创建。 3.1.5文件夹组织结构 在本系统中创建了五 个解决方案和一个类库,分别是客户端解决方案 、表情方案、语音和文件传输方案以及 服务器端解决方案,还有一个名为 QQClass 的类库。为了便于对它们进行操作,将客户端解决方案和类库添加到了服务器端解的决方案中。文件夹组织结构图如图 3-2 所示。 MyQQClient 解决方案主要是用于客户端各个窗口的开发,MyQQServer 解决方案主要是用于服务器端后台的用户信息管理平台界面的开发,QQClass 类库 主要是对 UDP 协议进行封装,还有定义其他一些类。 ImageListPopupDemo解决方案主要是用于实现 QQ 表情的发送的, MatureVoice 解决方案主要是用于实现语音的, UdpSendFile 解决方案主要是用于实现文件的传输功能的。 图 3-2 文件夹组织结构 图 3.2 类库的设计 在本局域网 QQ 聊 天软件中,因为在后台服务器端的用户信息管理平台以及前台的客户端的注册窗口、登录窗口、 QQ 界面窗口以及聊天窗口都需要用到 UDP 协议。所以本程序中,将 UDP 协议封装成了一个控件,主要是为了便于客户端和服务器端的调用,并且将 UDP 控件和自定义类存储在了 QQClass 类库中。当需要使用到 UDP 协议的时候,只需要在相应的窗口中加入 UDPSocket 控件,然后设置 UDPSocket 控件的相关的属性即可。下面对 QQClass 类库中的 UDPSocket 控件和其他的类分别进行说明。 nts毕业设计 (论文 )报告用纸 第 11 页 共 42 页 ( 1) UDPSocket 控件 该控件主要是 将 UDP 协议中的 IP 地址和端口号以及开启或者关闭的状态以控件的形式进行设置,并自定义一个了 DataArrival 事件,用于对主机的端口号进行监听,以获取远程计算机发送过来的消息。 在自定义控件上制作了 localHost、 localPort、 active 属性,以及 DataArrival 事件。localHost 用于设置服务器端的 IP 地址; localPort 属性用于设置端口号; active 属性是一个 Bool型,可以控制端口号是否处于监听状态。 UDPSocket 控件中包含了方法 OpenSocket 和 CloseSocket()方法分别用于打
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:JSJ02-011@UDP局域网QQ聊天程序
链接地址:https://www.renrendoc.com/p-508056.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!