程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> socket-c#將客戶端發來的數據流實時轉發給另一個客戶端 服務器數據緩沖區的建立問題

socket-c#將客戶端發來的數據流實時轉發給另一個客戶端 服務器數據緩沖區的建立問題

編輯:編程綜合問答
c#將客戶端發來的數據流實時轉發給另一個客戶端 服務器數據緩沖區的建立問題

我想要實現兩部安卓客戶端的實時語音通訊,安卓客戶端都在內網,因此需要一外網pc做數據的中轉服務器,安卓語音發送端通過audiotrack錄制PCM音頻數據並實時發送到服務器,服務器接收數據並不斷讀入一個緩沖區,開啟另一個線程循環讀取緩沖區的數據同時將數據發送到另一個安卓客戶端,問題就在於服務器的緩沖區要怎麼做?怎麼保證緩沖區的數據同時被兩個線程操作時的有序穩定 求大神指教,假設網絡良好,不考慮網絡波動帶來的數據處理問題。

最佳回答:


關鍵是語音流. 對隊列也比較贊同. 不過考慮並發多線程問題. 緩沖區 內部劃分應該分: 發送區, 資源區, 接受區. 對消息進行編號. 例如2s一個語音段, 發送成功就成功, 不然丟棄. 編號之後, 可以同時並發發送. 發送區進行資源鎖定, 進入server 資源區後解鎖. 接受區也是一樣的, 維護一個順序索引. 按順序發送資源區給接收端. 如果丟包你, 怎麼處理. 就是語音丟失鬧 . 後面再有也不要你. 鎖定之後就好. 其實生產--消費者思路. 至於實現, 如何並發, 並發 ,對外封裝調用.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved