我在服務器和客戶端之間建立了一對一的連接。該服務器正在流式傳輸實時音頻/視頻數據。用於高速音頻/視頻流的套接字和端口設置
我的問題聽起來很奇怪,但我應該使用多個端口/套接字還是隻有一個?使用多個端口速度更快還是單個端口性能更好?我應該只有一個端口用於消息,一個用於視頻,另一個用於音頻,或者將整個事件封裝在單個端口更簡單嗎?
我目前的一個問題是,我需要首先發送當前幀的大小,因爲大小 - 以字節爲單位 - 可能會從一幀改變到下一幀。我對網絡相當陌生,但我還沒有找到任何機制可以自動檢測正在傳輸的特定對象的正確範圍。例如,如果我發送一個2934字節長的數據包,我是否真的需要告訴接收方該數據包的大小?
我第一次嘗試打包幀的速度與它們進入時一樣快,但是我發現接收端有時候不會得到適當數量的字節。大多數情況下,它的讀取速度比我發送的速度快,只能獲得一個部分幀。儘可能快地獲得適當數量的字節的最佳方法是什麼?
還是我看起來太低,有一個更高級別的類/框架用於處理對象傳輸?
你應該做的最大的事情是完全忘記*數據包*。 TCP連接是**流**,因此任何數據描述都需要由*你*(協議)來處理。 –
另外,UDP *數據報*通常用於流式傳輸。 –
@JonathonReinhart:這可能是一個流,但我需要在數據包或幀中切斷它,否則客戶端將只處理垃圾 - 半幀或重疊幀。我根本不知道做這件事的最好或最有效的方法是什麼。顯然,我需要做的不僅僅是推動管道中的數據,並希望獲得最好的結果。 – LightStriker