现做一个视频数据中转服务器程序,服务器的任务是转发视频发布者的视频数据给其他用户还有保存该视频数据为文件,请问应该如何保存用户的视频数据?现在一个解决办法是每个UserInfo里面有一个lsVideoData链表来保存用户的视频数据,UDP监听线程接收到数据就New一个视频数据结构体来保存然后添加到链表里面,但是由于需要多线程添加删除链表中的元素需要加Critical_Section来保护,但是每个用户加一个Section这样感觉发布用户数量多的情况下效能差, 请教一般的媒体服务器对于数据处理一般是怎么做的,求一个高效的解决方案。
UDP是可能丢包的。如果丢包是偶发的,那么是网络问题。如果是经常性的,就必须检查网络数据处理部分。
至于选择什么样的socket模型,根据应用场合,一般情况下,非阻塞的模型都能满足需求。