首页
会员中心
到顶部
到尾部
VC毕业设计

局域网的语音通信(VC)

时间:2020/10/27 9:05:38  作者:  来源:  查看:0  评论:0
内容摘要:系统实现的功能及设计要求2.5.1 系统实现的功能         本系统要求在MFC(VC++)环境下实现,要求能够实现基本的语音通信功能,具体功能为:1.实现实时的语音通信2.语音数据的发送和实时...
系统实现的功能及设计要求
2.5.1 系统实现的功能
         本系统要求在MFC(VC++)环境下实现,要求能够实现基本的语音通信功能,具体功能为:
1.实现实时的语音通信
2.语音数据的发送和实时播放
2.5.2 设计要求
(一)要求具备的基础知识:
(1)熟悉MFC(VC++)编程环境
(2)熟悉计算机网络协议
(3)熟悉C/S结构               
(4)熟悉软件开发的基本流程
(5)论文中要体现现在软件工程的设计方法,比如:UML方法的使用等。
(二)开发环境
(1)操作系统:Windows 2000/XP/2003
(2)编译环境:Visual C++6.0
(三)程序需要的设计模块
(1)负责接收连接的服务器Socket模块:负责该程序作为服务器时的网络端口监听。
(2)负责接收/发送数据的客户端Socket模块:负责对Socket的发送数据和接收数据进行消息处理。
(3)声卡数据的采集和播放模块:采用相关波形音频API,负责采集声音数据和播放声音数据。
(4)主框架的参数设定、消息处理和界面控制模块:负责控制整个程序的操作,负责处理用户的输入参数,负责处理声卡消息和socket消息。
设计思想
         要实现点对点语音通信,原理非常简单,只要针对一个点实现话音的实时采集、处理、播放,同时能进行可靠的传送和接收,这样两点一连便可通话。对于前者,采用Windows MDK的低层音频服务比较合适,因为低层音频服务中的回调机制为我们提供了很大的方便。当应用程序不断向设备驱动程序提供音频数据时,设备驱动程序控制音频设备在后台完成录音和放音的具体操作,通过回调机制,我们又可以检测到什么时候用完一个数据块,并及时传送下一个数据块,从而保证了声音的连续,有了这种单机上的实时采集、回放功能后,接下来的工作就是在网络上传送话音数据。在点对点网络传输方面,选择面向连接的TCP协议,TCP传输协议自动处理分组丢失和交付失序问题,这样我们不用为这些问题操心,只需很好地利用这个连接,在采集话音回放之前一方面将自己的话音传给网络,另一方面接收网络传来的话音,这样便实现了点对点语音通信。其结构框图如下:
         对于声音的传送和接收主要是采用面向连接的TCP协议,并用Windows Socket进行网络编程实现,但首先要将发送和接收的函数接口放在 OnMmWimData(...)函数中,这样才能做到采集数据块填满后被发送,接收的数据收到后被播放。     Windows Socket对于从事过网络编程的人来说应该不陌生,因为我们要实现点对点通信,所以得把客户和服务器模式融合为一种模式,让服务器可以做客户,客户也可以做服务器,从而使双方都有呼叫对方和接受对方呼叫的能力,这只需增加一个监听Socket就行了。一旦呼叫连接建立成功,便在两个点之间建立了一个数据流,即使双方不讲话,每个点也在不停地收、发数据,一方有话音自然就随着这个数据流传给了对方,所以关键的问题就是怎样读取话音数据流,因为TCP提供的流式服务是不保证边界的,当发送方想一次发送 4000个字节时,调用语句Send(sBuffer,4000),并不能保证一定能发送出4000个字节;同样,接收方准备一次接收发过来的数据,调用语句Receive(rBuffer,4000),也不能保证一定能接收4000个字节,因此实际一次发送和接收的字节数会是1到4000中的任何一个值,最坏的情况是只有1个字节。相反,如果用Send函数连续发送少量数据,比如一次发送400个字节,连续发送10次,接收方用Receive函数可能一次就把这4000个字节都接收下来了,而为了实现播放,我们希望调用一次发送函数就能把缓冲区大小的话音数据发送出去,调用一次接收函数就能把对方一次发送的话音数据准确接收下来,以便进行播放,所以一种比较简单实用的办法,就是利用TCP协议发送数据时为每个数据包加个标志头:

说明:为了防止网络上可以查找到本毕业设计的论文及实际界面信息保护购买者的利益1、本计算机毕业设计样本提供的只是有关此设计论文和程序的简单介绍,要想取得完整的作品,需要你与本站联系。2、本样本只是从论文中摘录一部分,在内容、字体、字号排版上与实际作品有一定的差别,请以本站实际提供的作品为准。需要了解本计算机毕业设计的具体详细信息请联系本站客服。



相关评论
广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号