ソケット (BSD)
BSDソケットは、ブロッキングとノンブロッキングという2つのモードを持つ。ブロッキング・ソケットは指定されたデータを全て送受信し終わるまで呼び出したライブラリ関数から戻ってこない。これは、ソケットで listen を続けたい場合に困ったことになる。プログラムは決して届かないデータを待って動けなくなる可能性がある。
ブロッキングかノンブロッキングかを指定するには、fcntl() か ioctl() 関数を使う。
TCP はコネクションの概念を提供する。TCPソケットを生成するには socket() 関数で AF_INET または AF_INET6 と SOCK_STREAM を引数に指定する。