音视频通信系统服务器的设计与实现

2018-04-13 03:47彭新清赵聪聪易子钧魏茂盛
数字通信世界 2018年2期
关键词:群发服务器端控件

彭新清,赵聪聪,易子钧,魏茂盛

(火箭军工程大学,西安 710025)

1 研究的背景和意义

当前,通信方式错综复杂,话音、图像和视频传输所需要的基础设施多,通信质量容易受各种因素的影响,并且费用较大。而随着技术的发展,市场通信软件也更多,然而这些软件并不能保证通信信息的安全,容易出现用户账号密码被窃取、信息被恶意篡改、通信内容遭人窃听等现象。如何开发一套既能实现通信质量高、传输速率快,又能确保信息安全并且费用低廉的系统成为重点发展的方向。

2 系统的设计与实现

系统工作流程图如下图所示。系统的硬件环境由计算机、网线、交换机等组成局域网,通过Ping命令测试网络状态。采用的关键技术:Sockets套接字、MFC类库(主要包括:应用程序类、Windows套接字类、数据库类、对话框类、控件类等)、数据库应用技术等。

首先利用MFC AppWizard建立应用程序对话框,使用MFC类库作为静态的DLL,提供面向对象的资源。然后添加相应的控件。编辑框控件:用户名IDC_EDIT_USERNAME、密码IDC_EDIT_PASSWORD、服务器地址IDC_EDIT_ADDRESS、总人数IDC_EDIT_TOTAL、在线人数IDC_EDIT_ONLINE、消息内容IDC_EDIT_MESSAGE;按钮控件:确定IDOK、取消IDCANCEL、群发IDC_BUTTON_MESSAGE;静态文本控件:用户名IDC_STATIC、总人数IDC_STATIC1、在线人数IDC_STATIC2、在线人员IDC_STATIC3、消息内容IDC_STATIC4;列表控件:在线人员IDC_LIST_ONLINE。再分模块进行编写程序,(1)响应客户端注册、登录的功能。用户所有信息由数据库进行管理,注册账号时,会自动将生成的账号密码添加到数据库内,当管理员进行登录时,利用数据库提供的接口访问数据库,对数据库内存储的账号密码轮询,若所用的账号密码和数据库内保存的密码相同,则允许用户登录,这一机制能够验证用户身份是否正确,可以防止他人冒充管理员。Mysql数据库提供了访问数据库的API函数,通过编写程序的方式将C++和数据库连接在一起才能对数据库的内容进行操作。在注册时,系统通过:m_userName.GetWindowTextA(username);m_password.GetWindowTextA(password);m_address.GetWindowTextA(address)三个语句分别获取用户输入的账号、密码及数据库地址,再通过IsEmpty()函数判断用户名或密码是否为空,如果为空则给出提示并返回注册界面。用户端在使用时根据所注册的账号进行登陆,登陆也需要服务器端进行验证,确保访问者身份的合法性。(2)实时显示客户端总人数和当前在线客户端人数。当有新用户注册成功时,会即时反馈消息给服务器端,服务器端接受客户的注册,总人数自动加1,当某一用户使用已注册过的账号密码进行登录,并且成功登录到服务器端上时,当前在线人数一栏的数字会自动加1。(3)实时显示在线用户的昵称、IP地址。当某一用户通过认证登录到服务器端时,不仅当前在线人数一栏的数字会自动加1,而且会在下方列出登录用户的昵称和IP地址,这个可以识别用户是否在线,便于管理。(4)在线群发消息。可快速实现消息的群发,主要目的是用于通知类的消息发送。(5)“会议室”功能。受各类因素影响,带宽不足以支持音频和视频通话时,采用这样的形式进行交流,服务器掌握所有通信内容,适用用户群体之间 “开会”。利用OnReceive函数用于接收网络中传送的消息,根据客户端的不同请求进行不同处理,用户发送的消息先发送给服务器,服务器再通过SendUserCommandToIP语句统一向所有“会议室”内的用户转发。(6)其他功能。作为管理层,服务器端要求能对用户信息进行修改、删除和添加,一种方法是在数据库直接编辑,另一种方法是编写SQL语言的方式进行操作,使用起来简单方便且功能相对全面。从这一点上来说,服务器端可以间接地为用户进行账号的分配,方便联络通讯时互相识别,这也在一定程度上确保了信息传输的安全性。

3 软件调试和使用

先进行模块测试:验证用户身份的合法性、实时显示当前客户端总数、显示目前在线的客户端总数、显示在线客户端用户名和IP地址,群发系统消息等,然后综合测试系统,确保稳定性和可靠性。通过联调基本达到预计的效果。

[1] 李琳娜.Visual C++编程实战宝典[M].北京:清华大学出版社,2014.8.

猜你喜欢
群发服务器端控件
基于.net的用户定义验证控件的应用分析
Linux环境下基于Socket的数据传输软件设计
关于.net控件数组的探讨
借助微信自身功能实现消息群发
丁酉中秋登楼时家人远离 闻多地无月乃拍照群发(外三首)
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
一例群发性山羊痘的诊断与防治
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
医护一体化在群发伤救治中的实践与体会