一种网络语音聊天系统的设计与运用

时间:2022-10-08 10:54:32

一种网络语音聊天系统的设计与运用

摘 要:随着多媒体计算机技术和通信技术的发展,人们已不满足简单的话音和文字通信,希望集语音、文字和图像于一体的多媒体通信。网络语音聊天系统就是这种新型的通信手段之一。就一种网络语音聊天系统的设计与开发运用进行了阐述,对这一系统的性能进行了分析,并指出了它的不足之处。

关键词:多媒体;网关;通信

中图分类号: TP37

文献标识码: A

文章编号:1005-569X(2009)07-0101-02

1引言

随着多媒体计算机技术和通信技术的发展,人们已不满足简单的话音和文字通信,希望集语音、文字和图像于一体的多媒体通信。这是继电报、电话传真以及电子邮件之后,又一新的通信手段。网络语音聊天系统就是这种新型的通信手段之一。它在同一传输线路上承载了多种媒体信息,即音频和数据等,实现多点实时交互通信,同时也可以将不同地点人员的活动情况展现出来,这是一种快速高效、日益增长、广泛应用的新的通信业务。

2多媒体网络通信基本技术

2.1系统设计

服务器协调方案基于C/S模式,需设计一个高效的服务器程序,运行在一台具有独立IP地址的计算机上,主要用来完成发送和接收与客户端进行交互的控制信令、数据转发、维护客户信息和客户连接信息等功能。客户端程序可以运行在具有独立IP地址的计算机上,也可以运行在局域网内部,通过网关或防火墙连接到外部的机器上,这里要求防火墙的设置对客户端程序透明,即客户端程序本身不需要进行网关或的任何设置。客户端程序主要完成发送和接收与服务器交互的控制信令、视频/音频编解码、图象显示、白板信息处理、文件传输等功能。由于必须保证控制信息的正确性,因此,服务器和客户端之间所有的控制信息均采用TCP/IP协议,而各客户端之间的实时多媒体数据均采用UDP协议传输。整个系统的架构如图1所示。

2.2工作流程

服务器和客户端之间的控制信息通过TCP/IP协议进行连接,以两个客户端程序通过服务器程序建立连接的情况为例。服务器程序一启动就在某一可用TCP端口Plisten监听,随时等待客户端的连接。客户端程序启动后首先连接到服务器的Plisten端口,并将用户名、密码、IP地址、是否局域网内部IP地址等信息注册到服务器,服务器备份这些信息,并将所有在线客户的信息及时反馈给各客户。

3网络语音聊天系统的设计

3.1网络语音聊天系统的总体目标

其设计目标是实现以下基本功能:

(1)局域网环境下实现网络语音聊天服务器的架设;

(2)局域网环境下实现客户端文本、音频的传输;

(3)具有良好的用户界面。

3.2网络语音聊天系统的开发平台

硬件平台:PC机、话筒和扬声器。

网络平台:支撑系统工作的局域网是实验室内的10m/ loom自适应共享式以太网,采用星型拓扑结构,各台工作站和MCU服务器都通过5类无屏蔽双绞线连接到网络集线器上。

操作系统:Windows XP(sp2)。

编程语言:Visual C++。

3.3网络语音聊天系统的设计

设计思路是发送声音的一端将硬件接口采集到的声音数据通过Socket发送到另外一端,另外一端根据得到的声音数据调用硬件接口播放声音。其核心就是声音数据的采集,播放和声音数据的网络传输。

根据这个思路,需要设计出如下几个模块:

(1)负责接收连接的服务器Socket模块:负责该程序作为服务器时的网络断口监听。

(2)负责接收/发送数据的客户端Socket模块:负责对Socket的发送数据和接收数据进行信息处理。

(3)声卡数据的采集和播放模块:采用相关波形音频API,负责采集声音数据和播放声音数据。

(4)主框架的参数设定,消息处理和界面控制模块:负责控制整个程序的操作,负责处理用户的输入参数,负责处理声卡消息和socket消息。

4 网络语音聊天系统的实现与性能分析

4.1网络语音聊天系统的实现

该程序是一个基于对话框的应用程序,在创建VC++工程项目中,包括以下的一些文件:

服务器Socket程序为ServerSocket.h/ServerSocket.cpp,在服务器中,负责监听网络连接的类;

客户端Socket程序为ClientSocket.h/ClientSocket.cpp,负责对Socket发送数据和接收数据进行消息处理;

音频数据处理程序为Sound.h/Sound.cpp,采用相关声卡API,负责采集声音数据和播放声音数据;

主框架程序为ChatRoomDlg.h/ChatRoomDlg.cpp,显示主窗口的对话框和各种消息处理。

4.2系统运行环境

4.2.1 系统硬件平台

系统硬件包括普通的PC机,耳机,麦克风等。

4.2.2 系统软件平台

本文的程序在 Microsoft Windows XP 操作系统下才可运行。需要用VC 6.0 或者调试运行。

4.3网络语音聊天系统的性能分析

4.3.1 数据在网络上的传输

本程序只能运行在有真实IP的PC机上,相对于即时通信软件QQ,MSN等有很大的局限性。在文本聊天下,由于网络情况比通信软件QQ、MSN等更简单,因此发送、传播速度很快,而即时通信软件QQ、MSN等则有明显的延迟。

4.3.2 机器差异对程序的影响

内存的大小与电话中的语音的连续性和延迟性有很大的关心,内存越大,则语音的连续性越好,但延迟性越差,反之,内存越小,则语音的延迟性越小,但连续性越差。内存的数量与内存的大小和对每个内存的录音数据的处理时间长短有关,一定要保证在录音过程中,录音设备至少有一块内存可供录音,也就是说录满的内存要及时返回,使得循环能够顺利进行。

5结论

本软件使用了Winsock编程技术,结合WIN32 API提供的多媒体函数接口,但是仍存在很多不足之处,表现为:

(1)对于音频的处理过于简陋,只是能够传输声音而已,没有对声音进行优化、压缩等处理;

(2)只能运行于有真实IP的PC机,对于多媒体数据的跨网关传输以及对于网内虚拟IP等情况没有进行考虑。

参考文献:

[1] 谭浩强. C程序设计[M].北京: 清华大学出版社, 2000.

[2] Brian W.Kernighan, Dennis M.ritchie. TER C Programming Language(Second Edition)。Prentice Hall,1997.

[3] 萧秋水,文娟. Windows 网络编程之 VC 篇[M]. 北京: 清华大学出版社, 2001.

[4] 丁展,刘海英. visual c++网络通信编程实用案例精选[M].北京: 人民邮电出版社, 2004.

[5] 虞益诚. 网络技术和应用[M]. 南京: 东南大学出版社, 2005.

上一篇:试论环境污染的问题及解决方法 下一篇:谈绘画艺术的形式美