タグ

socketに関するokhraのブックマーク (3)

  • Winsock Programmer's FAQ: Articles: How to Use TCP Effectively

    TCP を有効に使うために Warren Young 著 ネットワークプログラミングの初心者は、はじめの頃にほとんど必 ずと言っていいほど、ネットワークもしくは TCP/IP スタックがデータ を壊しているのではないかと思ってしまう問題に突き当たります。これ は初心者にとってかなり驚くべきことでしょう。TCP とは信頼性のある トランスポートプロトコルである、と教えられているでしょうから。事 実、TCP と Winsock は、正しく使えば全く信頼性があるものです。こ のチュートリアルでは、TCP の使い方を学んでいるときによく出くわす 問題について論じたいと思います。 問題 1: パケットは幻影である この問題はさまざまな形をとって現れます。 「クライアントプログラムは 100 バイト送信してるのに、サーバ プログラムはたった 50 バイトしか受け取らないんだ。」 「僕のクライアントプロ

  • Manpage of EPOLL

    Section: Linux Programmer's Manual (7) Updated: 2008-02-28 Index JM Home Page roff page 名前 epoll - I/O イベント通知機能 書式 #include <sys/epoll.h> 説明 epoll は poll(2) の一種であり、エッジトリガインタフェースと レベルトリガインタフェースのどちらとしても使用することができ、 監視するファイルディスクリプタの数が多い場合にも使用できる。 epoll 集合を設定したり制御したりするために、 次の 3 つのシステムコールが提供されている: epoll_create(2), epoll_ctl(2), epoll_wait(2). epoll 集合は epoll_create(2) で作成されるファイルディスクリプタに接続される。 ファイルディスクリプタ

  • *BSD で kqueue・kevent を使ってみよう

    *BSD で kqueue・kevent を使ってみよう select() の欠点 select() は複数のディスクリプタをポーリングできる便利なシステムコールです。 しかしパフォーマンスはよくありません。理由は以下の通りです。 ユーザプロセスは、監視対象のディスクリプタ一覧をユーザ領域からカーネル領域にコピーする必要がある。 カーネルがポーリング結果をユーザ領域に返す際もコピーしなければならない。 カーネルは、ポーリング対象のディスクリプタを知るために、配列の全要素を調べなければならない。 ユーザプロセスも、入出力可能なディスクリプタを知るために、配列の全要素を調べなければならない。 上記の作業は、select() を発行するたびに毎回行わなければならない。 select() のパフォーマンスが悪いことは広く知られていたので、 各 OS でいろいろな取り組みが行われてきました。 Sol

  • 1