VLCのビルド (11)

最後の関門は、サーバ実装のacceptだった。どうやってもerrno=11のリソースがうんたらかんたらとエラーを吐く。

おかしい動作として、通常acceptは接続があるまで待つ。これをブロッキングと呼ぶ。それをしない。今回は、1対1接続まで出来ればいいので、ブロッキングで要件は十分である。

で、それが理由だった。

socketの作成の仕方が、net_Socket()関数だったのだが、これの中でノンブロッキングモードにしていた。VLCの場合、socketは全てノンブロッキングモードで作成しているので、当然のことだった。これを直接socketに入れることにより、ブロッキングモードに入ることが出来るようになった。

で、

動いた。

VLCのサーバ側とクライアント側をローカルで起動して、アクセスできた。wireshark(旧ethereal)でパケット見れた。

dccp.PNG

下のレイヤをちょこちょこ切り替えただけで、上位のストリームの繋ぎの部分とかは触っていない。触ったのは下位のAPIに関係あるとこだけ。そんだけで勝手にストリームが流れてくれた。かなり嬉しい。

中身が、RTPじゃないのでwiresharkで解析してくれない。次は中身をRTPにする作業でもしようか。

てか、DCCPで映像伝送マンセーとか言っておきながらフリーの実装用意してないってどういうことよ。DCCPをLinux実装で映像伝送しましたーってネタだけで、もう一本論文書けるぞ。

カテゴリー: チラシの裏 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください