项目需求
目前需要实现基于客户机和服务器模型的网络音频广/点播系统
本音频系统可以广泛应用在语音教室和公共广播等多种场所。该软件分为服务器和客户端两个部分,服务器运行在PC机上,客户机可运行在PC机或嵌入式设备上,服务器以多播的形式向局域网中所有客户机发送数据,客户机可以根据自己的选择来决定要接收的数据。
以收音机为例,server端一直跑,当你打开客户端,就会接收到从server端发送的信息,有多个频道可以选择
点播歌曲:选择歌曲,并将其加入歌单(待播放队列)
这个项目主要强调音频方面的内容,
视频方面,举例电视机,可以选择播放哪一个频道,其余频道虽然没有在电视机上显示出来,但依旧在播放。
存储
引入数据库,音频文件都在数据库中存放。
或使用当前文件系统,涉及到解析文件存储。
流量控制
无论是音频播放,还是视频播放,都会涉及到流量控制,流量控制即每秒播放多少个字节。如果没有流量控制,就会像 cat 命令一样,一下全显示出来,所以这是必不可少的
网络套接字
从sevre端向PC端传送数据,需要用到网络套接字SOCKET
exec函数族
可以让一个进程摇身一变变成另一个进程
但是不能让当前进程直接变,否则它正在进行的工作就会前功尽弃。
解决办法:
fork当前进程,创建一个子进程,让子进程变成所需要的可执行的二进制程序
进程间通信
将子进程创建完毕,父子进程分工明确,父进程从sever端接收数据,并传给子进程处理,这里用到了进程间通信。
多进程实现以及进程间关系
守护进程
会脱离终端