http://mmlab.disi.unitn.it/wiki/index.php/Analyzerのような(c ++、linux)rtpアナライザーを作成する必要があります。しかし、サーバーがudp-datagramを受信し、あるudp-datagramが終了して別のudp-datagramが開始したと判断する方法や、rtpを含むudp-datagramを識別する方法などの技術的な瞬間を理解できません。アナライザーのコードを見るのは素晴らしいことですが、私はそれを見つけていません。私の質問に対する答えを見つけるのを手伝ってくれませんか(ソケットを介してどのように実装できるか知りたいです)。どうもありがとうございました、本当に感謝します!
質問する
921 次
1 に答える
2
私があなたの質問を正しく理解している場合は、以下の手順に従うことができます。
- ソケットライブラリの1つを使用してC++でサーバープログラムを作成し、UDPソケットを作成します。
- クライアントがRTPパケットを送信しているポートをリッスンします。
- 指定されたUDPポートをリッスンしている間、UDPパケットを1つずつ取得します。
- UDPパケットを取得したら、2バイトのフィールドである長さフィールドを解析します。これは4バイト目から始まります。
- 長さ-8(バイト単位のUDPヘッダーサイズ)は、探しているものであり、実際にはRTPパケットのサイズです。
- UDPパケットの8番目のバイトから長さ'バイトまでのビットを取得して、RTPパケットを取得します。
- 次に、RTPパケットを取得します。また、IETFによるRFC3550でどのように表示されるかを確認することにより、同じ方法で解析することもできます。
(UDPパケットが順不同で到着する可能性があることを指定することもできます。また、RTPヘッダーのシーケンス番号フィールドを使用して、それらを並べ替えることができます)
于 2012-10-17T21:58:47.400 に答える