【精品】java基于局域网的聊天室系统(源代码+论文)
收藏
资源目录
压缩包内文档预览:(预览前20页/共28页)
编号:1638231
类型:共享资源
大小:11.83MB
格式:RAR
上传时间:2017-08-30
上传人:机****料
认证信息
个人认证
高**(实名认证)
河南
IP属地:河南
30
积分
- 关 键 词:
-
精品
java
基于
局域网
聊天室
系统
源代码
论文
- 资源描述:
-
【精品】java基于局域网的聊天室系统(源代码+论文),精品,java,基于,局域网,聊天室,系统,源代码,论文
- 内容简介:
-
分类号: U D C: 793 级:公 开 编 号 035 学位论文 局域网聊天室系统的设计与实 论文作者姓名: 申请学位专业: 申请学位类别: 指导教师姓名(职称): 论文提交日期: 基于局域网的视频聊天室系统的设计与实现 摘 要 视频聊天系统作为一种新型的通信和交流工具,突破了地域的限制,可以提供更为便捷、灵活、全面的音、视频信息 的传递和服务,具有极其广泛的发展前景。 本文介绍了采用 + 程开发视频聊天系统的一套比较常用的解决方案。文字聊天采用 式;语音视频聊天采用 式,在客户端之间点对点的进行。在该方案中,通过函数库 实现视频捕获、影像压缩以及影像播放。微软公司提供的专门用于视频捕获开发的工具包 在作系统中实现视频捕获提供了标准的接口,从而大大降低了程序的开发难度。在视频传输方面,则通过组建视频帧,将位图形式的视频帧压缩成帧格式的 ,传 输到客户端后,解压并显示影像。同时,在本方案中,采用了线程来实现语音录制和语音回放,最终实现了通过服务器中转的文字聊天、点对点的语音视频聊天。 关键词 : 文字聊天; 频捕获;视频传输;语音录制;语音回放 s a it a to a is by + + 6.0 is in DP In by in a of In it a is of of it be it is to it a to 目 录 论文总页数: 24 页 1 引言 . 1 题背景 . 1 内外研究现状 . 1 2 理论知识介绍 . 1 介 . 1 程的实现方法 . 4 3 需求分析 . 5 硬件环境 . 5 求分析 . 5 4 系统结构 . 7 件结构 . 7 件结构 . 7 能需求 . 7 统功能模块图 . 8 统 各模块 流程图 . 8 5 系统的详细设计 . 10 字聊天 . 10 接字的运用 . 10 字聊天实现 . 11 音视频聊天 . 13 接字的运用 . 13 频的捕获 . 14 获窗口 . 16 频捕获驱动 . 18 音录制 . 18 音回放 . 19 音频的传输 . 20 结 论 . 21 参考文献 . 22 致 谢 . 23 声 明 . 24 第 1 页 共 24 页 1 引言 题背景 随着 不断发展普及,网络通讯越来越被千家万户所接受,成为人们生活中的一部分。网络聊天已和手机等一样,成为人们运用最为广泛的通信工具之一。本毕业设计的目的主要是为了满足人们通讯交流的便捷,实现灵活、全面的音、视频信息的传递和服务。模拟腾讯公司的 天软件,开发一个多功能的聊天系统软件,本毕业设计主要实现视频语音聊天、文字聊天等功能。 内外研究现状 随着网络宽带业务的推广与普 及,加之视频产品设备(如摄像头、耳机、麦克风等)的成熟,普通用户可以轻松地借助网络视频通讯软件,实现“面对面”的网络交流 。信息的无限量扩大,交通工具的便捷, 视频 技术的充分应用等导致了行业间竞争的全球化,这就要求现代部门、企业要具备更加灵敏的神经,更扁平化的管理,更快速的反应和决策,更贴切的市场宣传和服务。所有这一切是由信息技术的发展 所 带来的,同样也要求有先进的信息技术来提高部门、企业的竞争力。 现代通讯已经是越来越普及了,必须有效合理的运用视频产品类设备来提高信息的传递和交流。在同一个局域网中,充分、合理的运 用摄像头、耳机、麦克风等设备来实现文字聊天和语音视频聊天更是我们生活、学习、工作的便利所在。 2 理论知识介绍 介 992 年推出的关于数字视频的一个软件包,它能使应用程 序 数字化并播放从传统模 拟 视频源得到的视频剪辑。 一个关键思想是播放时不需要专用硬件,为了解决数字视频数据量大的问题,需要对数据进行压缩。它引进了一种叫 文件标准,该标准未规定如何对视频进行捕获、压缩及播放,仅规定视频和音频该如何存储在硬盘上, 以及 在 件中交替存储视频帧和与之相匹配的音频数据。 程序员提供 口类的高级编程工具,使程序员能通过发送消息或设置属性来捕获、播放和编辑视频剪辑。用户不必专门安装 在安装 ,安装程序会自动地安装配置视频所需的组件,如设备驱动程序、视频压缩程序等。 要由以下六个模块组成: ( 1) 含了执行视频捕获的函数,它给 件 、 I/O 和视频音频设备驱动程序提供一个高级接口; ( 2) 一套特殊的 ( 3) 驱动程序包括对 令的解释器; 第 2 页 共 24 页 ( 4) 持由标准多媒体 I/O( 数提供的更高的命令来访问 件; ( 5) 压缩管理器( 管理用于视频压缩 /解压缩的编解码器( ( 6) 音频压缩管理器 供与 似的服务,不同的是它适于波形音频。 +在支持 面提供有 特别是它提供了功能强大、简单易行、类似于 于消息的接口,使之能 访问视频和波形音频硬件,并能在将视频流捕获到硬盘上的过程中进行控制。 持实时的视频流捕获和单帧捕获 , 并提供对视频源的控制。虽然提供数字视频服务,比如 , 它为显示 件的视频提供了 令集,为视频叠加提供了 令集,但这些命令主要是基于文件的操作,不能满足实时地直接从视频缓存中 获 取数据的要求 。 对于使用没有视频叠加能力的捕获卡的 来说,用 供的命令集是无法捕获视频流的。而 捕获视频方面具有一定的优势,它能直接访问视频缓冲区,不需要生成中间文 件,实时性很强,效率很高。同时,它也可将数字视频捕获到文件。 在视频捕获之前需要创建一个捕获窗,所有的捕获操作及其设置都以它为基础。用 口类创建的窗口(通过 数创建)被称为 “ 捕获窗 ” ,其窗口风格一般为 实际 上,捕获窗类似于标准控制(如按钮、列表框等)。捕获窗具有下列功能: ( 1) 将视频流和音频流捕获到一个 件中; ( 2) 动态地同视频和音频输入器件连接或断开; ( 3) 以 式对输入的视频流进行实时显示 ; ( 4) 在捕获时可指定所用的文件名并能将捕获文件的内容拷贝到另一个文件; ( 5) 设置捕获速率; ( 6) 显示控制视频源、视频格式、视频压缩的对话框; ( 7) 创建、保存或载入调色板; ( 8) 将图像和相关的调色板拷贝到剪贴板; ( 9) 将捕获的一个单帧图像保存为 式的文件。 显示视频时提供的两种模式 : ( A)预览( 式:该模式使用 源,视频帧先从捕获硬件传到系统内存,接着采用 数在捕获窗中显示。在物理上,这种模式需要通过在监视器上显示。 第 3 页 共 24 页 ( B)叠加( 式:该模式使用硬件叠加进行 视频显示,叠加视频的显示不经过 ,叠加视频的硬件将 输出信号与其自身的输出信号合并,形成组合信号显示在计算机的监视器上。只有部分视频捕获卡才具有视频叠加能力 。 灵活编写 供的回调函数还可满足一些特殊需求 。 比如 , 将宏用 记的回调函数一起使用 , 可使应用程序直接使用视频和音频数据 。 在视频 聊天 的应用程序中可利用这一点来获得视频帧 , 回调函数将捕获的图像传到远端的计算机。应用程序可用捕获窗来登 记回调函数(由用户编写,而由系统调用),以便在发生下列情况时 , 它能通知应用程序 , 作出相应的反应:捕获窗状态改变;出错;视频帧和音频缓存可以使用;在捕获过程中,其它应用程序处于让步( 位。 视频捕获编程也要用到涉及视频捕获的结构、宏、消息和函数。 令人高兴的是,发送 口消息所能完成的功能都能调用相应的宏来完成。例如,,0L)与 )的作用相同,都是将创建的 捕获窗同视频输入器件连接起来。 视频部分主要是利用 数库来获取影像的。 接驱动程序;获取影像、声音资料,并显示在屏幕上或者是存成 件;获取单张影像显示在屏幕上,拷贝至剪贴簿,或者是存成 件。 主要结构: 结构体 要包含一些获取图像的参数: 表相邻两个 获取时间间隔; 表示 以另一个 捕获影像,值为 序会在捕捉影像后显示忙碌状态; 值表示是否需要同时获取声音资料。 结构体 点阵图有关,主要定义了影像获取之后显示在屏幕上、存储在文件中的格式,它包含两个成员: 述影像性质的结构,其成员记载了影像的大小、颜色深度和压缩的方式,该成员在 数库中,以及有关于点阵图的应用中; 向 一个元素的位置。 结构体 要是记录所有和压缩相关的信息,重要的成员: 柄; 向待压缩影像指标; 向压缩完影像 指标; 表 所谓 指此 解压缩 第 4 页 共 24 页 时不需要依赖前面的 表影像压缩后的品质,取值为 1 10000的整数。 要记录压缩功能相关的信息,其包含的比较重要的成员: 入指向压缩前后 指标,以及欲使用的叫一个系统内建的对话,其中包含所有可能使用的 及其相关参数; 问 否支持某种压缩方式 ,输入参数为 指向压缩前后 指标,此函数会传回询问结果; 缩某个 还 相 关 资 源 给系 统 ;问 否支持某种解压缩方式;求系统准备相关资源以供解压缩之用; 压缩某一个 程的实现方法 线程是一个独立的执行流,是进程内部的一个独立的执行单元,相当于一个子程序,它对应于 +中的 对象。单独一个执行程序运行时,缺省地包含 了 一个主线程,主线程以函数地址的形式出现,提供程序的启动点 ,当主线程终止时,进程也随之终止。根据实际需要,应用程序可以分解成许多独立执行的线程,每个线程并行的运行在同一进程中。 一个进程中的所有线程都在该进程的虚拟地址空间中,使用该进程的全局变量和系统资源。操作系统给每个线程分 配不同的 间片,在某一个时刻, 个时间片中的相应线程在 轮流执行,由于每个时间片时间很短,所以对用户来说,仿佛各个线程在计算机中是并行处理的。操作系统是根据线程的优先级来安排 时间,优先级高的线程优先运行,优先级低的线程则继续等待。 供了两种线程 :用户界面线程和工作线程(又称为后台线程)。用户界面线程通常用来处理用户的输入并响应各种事件和消息,其实,应用程序的主执行线程 象就是一个用户界面线程,当应用程序启动时自动创建和启动,同 样它的终止也意味着该程序的结束,进程终止。工作线程用来执行程序的后台处理任务,比如计算、调度、对串口的读写操作等,它和用户界面线程的区别是它不用从 派生来创建,对它来说最重要的是如何实现工作线程任务的运行控制函数。工作线程和用户界面线程启动时要调用同一个函数的不同版本;一个进程中的所有线程共享它们父进程的变量,但同时每个线程可以拥有自己的变量。 第 5 页 共 24 页 这里主要介绍用户界面线程的运用: ( 1) 线程的启动 创建一个用户界面线程,首先要从类 生一个派生类,同时必须使 二步是根据需要重载该派生类的一些成员函数如: 、 、 等函数。最后调用 函数的一个版本: 0, 0, 动该用户界面线程,其中第一个参数为指向定义的用户界面线程类指针变量,第二个参数为线程的优先级,第三个参数为线程所对应的堆栈大小,第四个参数为线程创建时的附加标志,缺省为正常状态,如为线程启动后为挂起状态。 ( 2) 线程的优先级 的成员函数用于线程优先级的操作 : ; ( ( 3) 线程的挂 起 和恢复 中包含了应用程序挂 起 和恢复它所创建的线程的函数,其中用来挂 起 线程,暂停线程的执行; 用来恢复线程的执行。如果你对一个线程连续若干次执行 ,则需要连续执行相应次的 来恢复线程的运行。 ( 4) 结束线程 终止线程有三种途径,线程可以在自身内部调用 来终止自身的运行;可以在线程的外部调用 强行终止一个线程的运行,然后调用 函数释放线程所占用的堆栈;第三种方法是改变全局变量,使线程的执行函数返回,则该线程终止。 3 需求分析 硬件环境 电脑两台以上,分别配有 摄像头、麦克风、音箱或耳机等外部设备 ; 程开发系统等。 求分析 在同一 个局域网中, 如何根据自身业务的要求,量身定制,对视频设备进行 第 6 页 共 24 页 合理搭配,选择一套合理的视频 聊天室 系统 。如何来满足局域网内部用户的通讯要求,在考虑到网络带宽的同时 ,提高视频清晰度,动态画面的流畅,语音的实时传输等,正是现代社会通讯所必需的。设计本系统时,分析网络承载、整个系统结构的组建等是实现局域网文字聊天和语音视频聊天所必需的。 文字、语音视频聊天作为一种广泛的网络应用对其基础的承载网络环境有着较高的网络要求。其中应重点考虑的是网络的带宽情况、端到端的时延、时延抖动、丢包率等问题。 ( 1) 网络带宽需求,视频聊天对网 络的带宽需求为“视频带宽 +头开销”,计算方法为:网络带宽 = 视频带宽 ( 2) 端到端的时延,网络传输不可避免的会发生传输时延,通常建议视频聊天的通用时延小于 150 ( 3) 时延抖动,由于音频 /视频的传输为实时的交互,因此网络的时延抖动更为重要,一般,视频聊天的时延抖动控制在 50。 ( 4) 丢包率,网络数据传输经常会出现丢包现象,视频传输过程中数据丢包严重的话会影响在线视频聊天质量。因此,在设计上应将网络上的丢包率控制在 1%以内。 视频聊天对实时性要求较高的网络应用,作为其基础的承载网络有较高的宽带 和对网络中的业务流量有较高的控制能力。而视频聊天系统本身对带宽的要求为 62s 2s,但是为了满足流畅的视音频效果,要求带宽不低于384s。 文字、视频聊天的功能和应用效果体现在客户端,而服务器端则是必不可少的,对于系统的需求分析在系统设计的过程中应该明确、细致: ( 1) 文字聊天:首先启动服务器端,当用户启动客户端时,用服务器保存的用户名和密码来验证客户是否已经登录到服务器。只有当有两个以上的用户启动客户端时,才可以进行文字聊天,聊天内容要经过服务器中转,分别在服务器端和两个聊天的客户 端显示聊天。 ( 2) 语音视频聊天:在有两个客户在线的情况下,才能进行语音视频聊天。两个用户要进行语音视频聊天时,一个用户选中另一个用户的用户名,根据该用户名在后台链表中的对应 址查找用户并请求视频连接。当双方确认视频连接后就进行视频传输,并显示在客户端,同时用线程实现语音录制和回放。这样,两个用户就实现了点对点的语音视频聊天。在进行语音视频聊天的过程中,不能再与其它用户进行语音视频聊天,但能够与其它用户进行文字聊天。 第 7 页 共 24 页 4 系统结构 件结构 该系统采用的是 构,服务器端是一台 ,而客 户端是和一个数字摄像头、耳机和麦克风。它们进行文字聊天时,要经过服务器进行中转,而当进行语音视频聊天时是客户端与客户端之间直接进行的点对点的连接,它们之间的网络拓扑结构如图 1。在图中,为了简便,没有画出 麦克风、音箱或耳机等外部设备 。 图 1 网络拓扑结构图 件结构 能需求 通过需求调研并分析,确定系统具备的基本功能,包括:文字聊天、语音视频聊天。 ( 1) 文字聊天: 文字聊天采用的是 式,包括服务器端和客户端。首先启动服务器端,客户端通过用户名和密码登录服务器,服务器响应客户端登录并提示有用户登录 ,此时两个用户就可以进行文字聊天,在文字聊天时通过服务器中转,而每个用户可以同时与多个用户进行文字聊天。当有用户退出时,服务器做出响应,提示在线用户 ,用户下线 。 ( 2) 语音视频聊天: 语音视频聊天时采用的是 式,客户端与客户端点对点的进行,不需要经过服务器端中转。在文字聊天的基础上,客户端之间自行处理的语音视频聊天,运用 比如 :视频捕获、影像压缩以及影像播放等,同时利用线程来处理声音部分的录制、回放等。 第 8 页 共 24 页 客户端请求语音视频聊天是通过 客户端的 址,并向 B 客户端发送语音视频聊天请求,当 进行压缩传输到 B 客户端接受视频的同时, 缩传输到 统功能模块图 该系统分为服务器端和客户端,完成了文字聊天和语音视频聊天,使用上只有文字聊天时才会通过服务器端,而对于语音视频聊天就只需要对整个在线客户端两两之间进行点对点的 视频聊天。而在语音视频时包括了视频捕获、视频压缩、解压缩、语音录制、语音回放以及视频传输等。整个系统的功能模块图如图 2。 基 于 局 域 网 的 视 频聊 天 室 系 统语 音 视 频 聊 天视 频 捕 获视 频 压 缩 、解 压 缩视 频 传 输服 务 器 中 转 语 音 录 制 语 音 回 放文 字 聊 天图 2 系统功能模块图 统各模块流程图 在整个系统中主要运行两个功能:图 3 文字聊天流程图和图 4 语音视频聊天流程图。 第 9 页 共 24 页 图 3 文字聊天流程图 图 4 语音视频聊天流程图 第 10 页 共 24 页 5 系统的详细设计 字聊天 接字的运用 在文字聊天时 ,服务器端与客户端的连接是采用的 接节进行连接。 。创建 处理服务器端与客户端的连接, 承于 高层抽象。常和 及 混合使用,这两个类负责数据的发送和接收。要使用 象,首先要调用构造函数,然后调用 数创建一个 柄。 数缺省是创建一个流 果没有使用 ,那么还可以创建一个数据报 务器端调用 户端调用 后创建一个 关联 下来的操作可以创建 象关联 用来发送和接收数据。 图 5 接字的使用 第 11 页 共 24 页 字聊天实现 务器运行时,利用一个 象 动服务器,用函数 获得服务器端主机名和 时在服务器对话框中显示服务器 将分配的固定端口号 8123 显示在对话框中。用一个 时更新用户登录情况,用一个 示客户端的聊天内容以及系统提示消息。每一个 户端启动时,利用服务器内定的用户号和密码来登录 (如图 6)。在整个系统中,利用链表来处理所有的用户信息:当有用户登录时,在链表尾部加入该用户信息;当用户下线时,在该链表中删除用户,并提示所有用户,该用户下线。在对链表进行操作的同时,要更新表中的信息。 图 6 用户登录界面 务器端响应客户端文字聊天时的中转情况如图 7。 图 7 服务器响应文字聊天信息中转 户端两两间进行文字聊天时, 发送信息的处理函数如下: 第 12 页 共 24 页 /发送信息按键 ! 请连接服务器 !rn); 在聊天两个客户端的信息情况如图 8 和图 9。 第 13 页 共 24 页 图 8 接收文字信息 图 9 发送文字信息 音视频聊天 接字的运用 在实现语音视频聊天时 ,采用的是基于 而 其套接字的使用如图 10所示。 第 14 页 共 24 页 图 10 接字的使用 频的捕获 利用 口,视频 捕获可以分为以下几个步骤: ( 1) 建立视频采集窗口:该窗口用来接收视频捕捉驱动程序传来的数据和消息。 ( 2) 连接视频驱动程序:将建立的视频捕捉窗口与视频设备驱动程序相连。 ( 3) 视频捕获初始化。 ( 4) 视频捕捉设置: 视频捕捉参数的设置可以通过调用函数或弹出对话框的形式来实现。一般视频驱动程序允许设置的参数包括视频源选择、视频格式、视频显示格式等。 ( 5) 设置回调函数:通过回调函数来通知程序视频事件的发生,比如捕捉一帧图像成功的消息,捕捉出错的消息等。 ( 6) 结束捕捉:结束捕捉是应该有一些清除工作。如释放分配的内存,断开捕捉窗口与视频捕 捉驱动程序的连接,清除视频捕捉窗口等。 窗口类为捕获数字视频流及其相关操作提供了很大的方便,灵活编写其中的 第 15 页 共 24 页 回调函数可满足实时视频传输的需要,例如应用程序可直接从缓冲中取得数字视频并对其进行压缩编码后实时地传到远端的客户端。 在 中,采用 术,客户端通过 注册回调函数,当采集卡采集到一幅图像后,系统就会自动调用回调函数,然后再回调函数中使 用 函数进行压缩。然后再通过 压缩后的数据发送到 另一客户 端。 该客户 端接收完一帧以后,交给 解压,最后用 将图像显示出来 。 基本的捕获设置包括设置捕获速度(每秒捕获多少帧)、是否同时捕获声频、捕获缓冲、允许最大丢失多少帧和是否使用 存,以及使用键盘的哪个键或鼠标的哪个键来终止捕获等内容,这些设置使用 构来描述,来得到当前的设置,然后改变此结构的成员变量,再使用 设置新的设置。 设置捕获速度,通过使用 来得到当前的捕捉速度,将当前的捕捉速度保存在 可以通过设置此变量来改变当前设置值。 设置终止捕获,同样通过使用 来得到当前的设置,当前按键设置保存在 构的 员中,鼠标设置保存在 员中,通过修改可以设置新的热健或者鼠标左右键,修改完成后,使用 来进行更新。
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。