ソケットはデフォルトでブロッキング。ソケットに関するシステムコールは、4つに分類できる。 入力操作 read, readv, recv, recvfrom, recvmsg。これらの関数をブロッキングTCPソケットに対して呼び出した際にソケットの受信バッファにデータが存在しない場合、呼び出したプロセスはデータが到着するまでスリープする。 ある量のデータが到着するまで待ちたいときには、MSG_WAITALLフラグを指定する。 非ブロッキングソケットでは、入力操作が即座に終了しない場合、これら関数呼び出しは即座にEWOULDBLOCKエラーを返して終了する。 出力操作 write, writev, send, sendto, sendmsg。TCPソケットではカーネルがアプリケーションのバッファからソケットの送信バッファにデータをコピーする。ブロッキングソケットの送信バッファに空きがない場合、

