(ライブストリーミングに成功したため、実際の質問は編集されましたが、クライアントとCコードの間の通信がわかりません。)
さて、ついに C コードを使用してライブ ストリーミングを行いました。しかし、ここで「HTTP」がどのように機能するのか理解できませんでした。Wireshark を使用して、リンクhttp://www.flumotion.com/demosite/webm/でブラウザとサーバー間の通信を調べました。
クライアントが最初にこの GET リクエストを送信することがわかりました
GET /ahiasfhsasfsafsgfg.webm HTTP/1.1
Host: localhost
Connection: keep-alive
Referer: file:///home/anirudh/Desktop/anitom.html
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Range: bytes=0-1024
この get 要求に対して、サーバーはこの応答を送信して応答します
HTTP/1.0 200 OK
Date: Tue, 01 Mar 2011 06:14:58 GMT
Connection: close
Cache-control: private
Content-type: video/webm
Server: FlumotionHTTPServer/0.7.0.1
その後、サーバーはクライアントが切断されるまでデータを送信します。クライアントは一定量のデータを受信すると切断します。その後、CLIENT は新しいポートでサーバーに接続し、同じ GET 要求がサーバーに送信されます。サーバーは再び同じ応答を返しますが、今回はクライアントは切断せず、サーバーが切断されるまで継続的にパケットを読み取ります。上記の動作を再現するサーバー ソケットを持つ C コードを作成しました。(wireshark、flumotion、stackoverflow に感謝)
しかし、しかし、クライアントが2つのリクエストを送信する必要がある理由と、最初のリクエストでリセットして新しいポートで同じリクエストを再度送信する理由と、今回はライブストリーミングされているかのようにデータをリッスンする理由を理解できませんでした. また、チャンク エンコーディングを使用してライブ ストリームを配信する方法もわかりません。
同じことの詳細がここにあります: http://systemsdaemon.blogspot.com/2011/03/live-streaming-video-tutorial-for.html
そしてここhttp://systemsdaemon.blogspot.com/2011/03/http-streaming-video-using-program-in-c.html
私を助けてください。前もって感謝します。