VC++013-基于LAN视频语音通信系统软件
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
摘要:本系统主要是为了方便人们通信所设计的。系统适用于局域网,特别一些小的组织与中小型企业。学校也可以应用此系统进行教学与办公。系统主要的特点是:能实时进行通信,信息资源可以实时的、快速的、简捷的传送到通信的另一端,为用户节约了时间和费用的开支。系统的主要功能是:能实时的进行文字消息与音频/视频的通信;还有语音与文字的广播、共享白板。这些功能特别适用于学校的教学工作。另处,在企业、学校办公或会议方面也有很大的用处,
通过利用RTC 的语音视频通信与白板共享就能达到这样的目的。比如办公双方要进行一个流程的绘制,通信的双方通过共享白板,可以在一个白板上进行绘制并且可以作出相互的补充。
本系统的主要特色就是所应用的开发技术Real-Time Communications (RTC)实时通信编程接口。至今,我们所应用的大多数网络工具中,能为我们提供语音或是文字通信的,为数还比较多;但是能为我们提供传统文字、语音通信的同时,又带有视频通信的工具就比较少了。视频电话可以算是一种,但一般的家庭要使用这样的电话可能不愿作出那么大的开支。在INTERNET上为们的提供这样方便通信的工具也不多。人们最熟悉不过TENCENT QQ 还有Windows 操作系统自带的Windows Messenger。这两个工具应用到了视频通信的技术。可能还有一些大型的系统会应用到视频通信这样的技术,但是它只为专门的组织所应用。所以能应用这样的技术来进行工具的开发,我认为有一定创新与特色的。 [资料来源:http://think58.com]
另一个特点就是:系统不是专为某个人或某个组织开发的,而是面向大多数的用户。所以系统的适用范围很广。
系统的开发平台是Windows,开发工具是Visual C++ 6.0。系统运行所需的外设只有麦克风、摄像头。本系统在Windows 2000 或 Windows XP下能很好的运行。
关键字:实时通信 Real-Time Communications (RTC) [来源:http://www.think58.com]
[资料来源:THINK58.com]
目录 [资料来源:http://think58.com]
引言
第一章 问题定义 ..............................................................1
第二章 可行性分析 ............................................................2
2.1 技术可行性 ............................................................2
2.2 经济可行性 ............................................................3
2.3 操作可行性 ...........................................................3
2.4 系统概要流程 ..........................................................3
第三章 需求分析 .............................................................4
3.1网络结构要求 .........................................................4
3.2系统适用的OS平台 .....................................................4
3.3系统对硬件的要求 ......................................................4
3.4系统适用的对象 ........................................................4
3.5 系统大致功能性能需求 ..................................................4
[资料来源:http://www.THINK58.com]
3.6 需求目的 ..............................................................5
3.7 系统基本功能与性能 ....................................................5
3.8 系统应用的网络结构 ....................................................6
3.9 系统数据流程图 ........................................................7
第四章 总体设计 ..............................................................8
4.1 客户/服务器端通信协议 ................................................8
4.2 客户/服务器端应用程序 ................................................8
4.3 RTC实时通信程序 ......................................................8
4.4 系统功能 .............................................................8
4.4.1 客户端功能 .......................................................8
4.4.2 服务器端功能 .....................................................8
4.4.3 RTC客户实时通信功能 ..............................................8
5.1 系统功能模块图 ........................................................9 [版权所有:http://think58.com]
第五章 详细设计 ..............................................................10
5.1流程图 ................................................................10
5.1.1系统概要流程图 ...................................................10
5.1.2 SOCKET TCP/IP服务器、客户工作流程图 ...............................11
5.1.3 SOCKET TCP/IP 服务器设置与客户连接工作流程图 ......................12
5.1.4 RTC工作模式——会话状态改变事件处理流程图 ..........................13
5.1.5 RTC工作模式——声音强度事件处理流程图 ..............................14
5.1.6 RTC工作模式——媒体事件处理流程图 ..................................15
5.1.7 RTC工作模式——客户事件处理流程图 .................................16
5.1.6 RTC工作模式——即时消息事件处理流程图 .............................17
5.2 用户界面CLBSNewView模块 ...............................................18
5.2.1刷新网上用户资源 ..................................................18 [资料来源:www.THINK58.com]
5.2.2枚举所有存在连接的计算机IP ......................................18
5.2.3服务器设置 .......................................................18
5.2.4 断开连接 ........................................................19
5.2.5辅助连接功能 .....................................................19
5.2.6关闭所有连接 .....................................................20
5.2.7关闭服务器连接队列
中的所有客户SOCKET的连接处理 .....................................20
5.2.8关闭当前的会话处理 ...............................................21
5.2.9连接服务器处理 ...................................................21
5.2.10 重设为服务器 ...............................................22
5.2.11服务端监听客户的连接 ........................................22
5.2.12发送客户输入的文字消息处理...................................23
5.2.13刷新上线用户功能 ............................................24
5.2.14刷新网上用户SOURCE功能 .....................................24
[来源:http://think58.com]
5.2.15语音通信控制 ................................................24
5.2.16断开语音通信控制 ............................................24
5.2.17声音数据的消息处理 ..........................................25
5.2.18视频音频凋节控制 ............................................25
5.2.19音频视频通信的请求控制 ......................................26
5.2.20 RTC消息发送的请求控制 ......................................26
5.2.21退出音频视频通信控制 ........................................26
5.2.22用户窗口的RTC事件处理 ......................................27
5.2.23界面初始化函数 ..............................................27
5.2.24利用鼠标与CLISTCTRL的连接方式 ...............................28
5.3服务器模块CMServerSocket ..............................................28
5.3.1监听客户的连接 ...............................................28
5.3.2服务器端初始化 ...............................................28
5.4客户端CMClientSocket模块 ..............................................29
[资料来源:http://www.THINK58.com]
5.4.1接收数据 .........................................................29
5.4.2数据的发送 .......................................................30
5.4.3关闭当前的的用户连接 .............................................30
5.4.4关闭当前客户端的SOCKET ...........................................31
5.4.5获取本地主机名称 .................................................31
5.5用于声音处理的模块CLBSSound: ..........................................32
5.5.1初始化音频采集与播放格式 .........................................32
5.5.2录取声音数据 .....................................................34
5.5.3播放声音数据 .....................................................34
5.5.4停止声音数据的录音 ...............................................34
5.5.5清除播放缓冲区中的数据 ...........................................34
5.5.6清除音频设备所占内存 .............................................35
5.5.7系统自动关闭波形音频设备 .........................................35 [资料来源:www.THINK58.com]
5.6对网络中要传送数据的处理模块CMyMessage .................................36
5.6.1负责对数据进行串行化 .............................................36
5.7 事件处理器:CRTCEvents ...............................................36
5.7.1事件处理器中各类事件接口的查询 ...................................36
5.7.2给特定用户进行RTC事件处理器的初始化工作 ..........................37
5.7.3注销当前客户的事件处理器 .........................................37
5.7.4增加对RTC事件处理器的引用处理 ...................................38
5.7.5管理事件处理器消毁本身 ...........................................38
5.8 RTC通信的处理模块 ....................................................39
5.8.1 RTC客户端的初始化工作 .......................................38
5.8.2用户窗口监听处理实时通信事件OnRTCEvent ......................40
5.8.3创建一个通信会话 ............................................ 42
5.8.4处理实时流会话事件 ...........................................43
5.8.4.1 媒体流事件 ...........................................43
5.8.4.2音频强度事件 ...........................................43
5.8.4.3 即时消息事件 ..........................................44
5.8.4.4 会话状态改变事件 ......................................44
5.8.4.5 客户事件 ..............................................46
5.8.4.6 新会话加入到会话列表中处理 .............................46
5.9 RTC实时通信音频与视频用户窗口CAVSHOWDLG模块 ...........................47
5.9.1窗口初始化 ......................................................47
5.9.2显示通信时客户与本地的图像处理 ...................................48
5.9.3显示声音强度信息: ...............................................49
5.9.4传送RTC客户端事件类型 ...........................................49
5.9.5传送RTC声音强度信息 .............................................50
5.9.6当前媒体类型信息的传送 ...........................................50
5.10 RTC消息发送与接收的处理模块 CMessageDlg ...............................51 [来源:http://think58.com]
5.10.1传送当前用户即参与RTC通信者的状态 ...............................51
5.10.2传送用户状态信息 ...............................................51
5.10.3传送用户发送的消息 ..............................................51
第六章 测试部分 ..............................................................52
第七章 结束语 .................................................................54
第八章 附录一 RTC部分知识 ....................................................55
第九章 附录二 部分代码 ........................................................58
第十章 参考文献 ...............................................................63 [来源:http://think58.com]
功能需求:
服务器端要求:
系统起动时自动进入服务器状态。
根据用户要求,服务器可以随时断开并可以切换状态,也可以重新回到服务器状态。
服务器要能监听所有连接到本服务器上的客户,保存客户的状态、保持相关连接。
接收所有客户的文字与声音数据,并能广播这些数据到所有的客户端。
服务器端除了用于监听客户连接,传送客户消息外。自己也可以进行数据的输入(采集)然后广播到所有的客户端。
通过服务器的广播,能达到客户与客户进行交流的目的。
服务器端可以随时断开语音通信,但服务器在断开本地主机的语音通信时,还可以为各客户端传送语音数据。不影响连接到本地的客户的语音传播。
[资料来源:THINK58.com]
客户端要求:
能随时断开与服务器的连接,并能随时能切换到服务器的角色。
提交文字或声音数据给服务器,达到与服务器一对一的通信。同时由服务器的广播又能起到客户与客户的一对多或是一对一的交流。
客户能随时选择不同的服务器通信方。为此选择不同的交流小组。
客户可以使用辅助连接功能连接到服务器上。(当系统无法扫描到LAN上的某台主机时)
实时通信:
要求能选择不同的对象进行实时通信。
能达到类似于电话的通信功能。
在通信的过程中,用户可能选择自己所喜欢的设备,并可以对设备进行调节。
在没有设备,如摄像头、麦克风、的情况下使用者也可以利用存在的设备进行通信。也就是说一个设备的存在与否不能影响另要设备的工作。
可以共享白板,两台通信的主机之间通过共享白板,这类似于两个人在同一张纸上写字。通信双方所写的信息显示在一个地方,并且可以相互改动显示的信息。在远程的两个用户可以利用共享白板的功能进行协商。
辅助功能:
根据用户的要求,可以刷新局域网内存在连接的主机,并能直观的显示出来。
刷新所有在线主机所共享的资源,并直观的显示给用户,而且用户可能打开这些共享的资源。类似于应用操作系统“网上邻居”的功能。 [资料来源:http://think58.com]
[版权所有:http://think58.com]