ソケット (BSD)
↑ 河野 清尊、2003、『C言語による UNIXシステムプログラミング入門』第一版、オーム社 ISBN 978-4-274-06499-9 p. 422
↑ Stevens, William Richard、A.Rago, Stephen「16 ネットワーク IPC: ソケット」『詳解UNIXプログラミング』大木敦雄(第3版)、株式会社翔泳社、〒 160-0006 東京都新宿区舟町5、2014年4月21日(原著2013年5月4日)、551頁。ISBN 9784798134888。https://www.shoeisha.co.jp/book/detail/9784798134888。2018年9月3日閲覧。
↑ The protocol modules are grouped into protocol families such as AF_INET, AF_IPX, and AF_PACKET, and socket types such as SOCK_STREAM or SOCK_DGRAM. SOCKET(7)
↑ These families are defined in <sys/socket.h> SOCKET(2)
socket() は通信の一方の終端を作成し、それを表すファイル記述子を返す。socket() には以下の3つの引数がある。
domain - 生成するソケットのプロトコルファミリを指定する。 AF_INET - IPv4 AF_INET6 - IPv6 AF_UNIX - UNIXドメインソケット
type - ソケットのタイプ指定。 SOCK_STREAM - 信頼性のあるストリーム指向サービス(TCPに対応) SOCK_DGRAM - データグラムサービス(UDPに対応) SOCK_SEQPACKET - SOCK_STREAMとほぼ同じだが、受信したパケットを読み出す際にパケット全体を読み出さないと、残りを破棄する。 SOCK_RAW - IPレベルのプロトコル処理をユーザー側で用意するときに使用
protocol - 通常 0 を指定し、デフォルトの物が選ばれる。トランスポート層のプロトコルは、domain と type で指定されるが(TCPの場合、AF_INET または AF_INET6 と SOCK_STREAM、UDPの場合、同様の AF_ 値と SOCK_DGRAM)、明示的に指定することも可能で、その値は <netinet/in.h> に定義されている。
エラーが発生すると -1 を返す。そうでない場合、新たに確保された記述子を表す整数を返す。