dou_bi_ 2014-11-21 07:34 采纳率: 100%
浏览 7236
已采纳

c#将客户端发来的数据流实时转发给另一个客户端 服务器数据缓冲区的建立问题

我想要实现两部安卓客户端的实时语音通讯,安卓客户端都在内网,因此需要一外网pc做数据的中转服务器,安卓语音发送端通过audiotrack录制PCM音频数据并实时发送到服务器,服务器接收数据并不断读入一个缓冲区,开启另一个线程循环读取缓冲区的数据同时将数据发送到另一个安卓客户端,问题就在于服务器的缓冲区要怎么做?怎么保证缓冲区的数据同时被两个线程操作时的有序稳定 求大神指教,假设网络良好,不考虑网络波动带来的数据处理问题。

  • 写回答

10条回答

  • aaa45612342008 2014-11-21 08:53
    关注

    关键是语音流. 对队列也比较赞同. 不过考虑并发多线程问题. 缓冲区 内部划分应该分: 发送区, 资源区, 接受区. 对消息进行编号. 例如2s一个语音段, 发送成功就成功, 不然丢弃. 编号之后, 可以同时并发发送. 发送区进行资源锁定, 进入server 资源区后解锁. 接受区也是一样的, 维护一个顺序索引. 按顺序发送资源区给接收端. 如果丢包你, 怎么处理. 就是语音丢失闹 . 后面再有也不要你. 锁定之后就好. 其实生产--消费者思路. 至于实现, 如何并发, 并发 ,对外封装调用.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料