FC2ブログ

selectとepoll

チャットサーバプロセスは、非同期で複数のチャットクライアントからの
接続を受けたり、データの受信を受けたりします。
この目的で使うシステムコールはselect()を思いつきますが、
epoll()というものもあります。
どちらも同じようなことをしますが、以前別のシステムの開発をしていたときの経験で
epollの方が性能がよくて、多くの接続がある場合に、かなり処理時間に差が出ていました。
そこで、チャットサーバプロセスではepollを使っています。

epollの使い方は、selectと差がないくらい簡単で、
・epoll_create()でディスクリプタを作成し
・epoll_ctl()でsocketのディスクリプタをepollに登録します。
・epoll_wait()で待ち受けて、反応のあったディスクリプタの処理をします。
こんな感じです。

http://chattera.net/
http://chattera.net/chaberilist.php
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

chattera.net

Author:chattera.net
フリーでソフト開発の仕事をしています。
自作したこのチャットシステムは、何か世の中に役に立つこともあるかと思いますので、お呼びがかかるとうれしいですね。

連絡先は chatteranet@gmail.com です。

また、ソフト開発関連のお誘いもうけたまわっております。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR