サーバーとクライアントの間に 1 対 1 の接続があります。サーバーはリアルタイムのオーディオ/ビデオ データをストリーミングしています。
私の質問は奇妙に聞こえるかもしれませんが、複数のポート/ソケットを使用する必要がありますか、それとも 1 つだけを使用する必要がありますか? 複数のポートを使用した方が速いですか、それとも単一のポートを使用した方がパフォーマンスが向上しますか? ビデオ用に 1 つ、オーディオ用に 1 つ、メッセージ専用のポートを用意する必要がありますか? それとも、すべてを 1 つのポートにパッケージ化する方が簡単ですか?
私の現在の問題の 1 つは、現在のフレームのサイズ (バイト単位) がフレームごとに変化する可能性があるため、最初に現在のフレームのサイズを送信する必要があることです。私はネットワーキングにかなり慣れていませんが、送信されている特定のオブジェクトの正しい範囲を自動的に検出するメカニズムを見つけていません。たとえば、2934 バイトの長さのパケットを送信した場合、そのパケットのサイズを受信者に通知する必要があるでしょうか?
私は最初に、フレームが入ってくるのと同じ速さでパッケージ化しようとしましたが、受信側が適切なバイト数を取得できないことがあることがわかりました。ほとんどの場合、送信するよりも速く読み取り、部分的なフレームしか取得しません。適切なバイト数だけをできるだけ早く取得する最善の方法は何ですか?
それとも、私が低すぎるように見えて、オブジェクトの送信を処理するために使用されるより高いレベルのクラス/フレームワークがありますか?