ソケット生成します。
#include <sys/socket.h>
#include <sys/types.h> /* BSD系のAPIで必要な場合有り */
int socket (int socket_family, int socket_type, int protocol);
第1引数 : ソケット・ファミリ(socket_family) 第2引数 : ソケット・タイプ(socket_type) 第3引数 : 使用する固有のプロトコル指定(protocol) 通常は、「0」 戻り値 : (ファイル)ディスクリプター
PF_UNSPEC | 0 | Unspecified. |
PF_LOCAL | 1 | Local to host (pipes and file-domain). |
PF_UNIX | 1 (PF_LOCAL) | Old BSD name for PF_LOCAL. |
PF_FILE | 1 (PF_LOCAL) | Another non-standard name for PF_LOCAL. |
PF_INET | 2 | IP protocol family (IP version 4). |
PF_AX25 | 3 | Amateur Radio AX.25. |
PF_IPX | 4 | Novell Internet Protocol. |
PF_APPLETALK | 5 | Appletalk DDP. |
PF_NETROM | 6 | Amateur radio NetROM. |
PF_BRIDGE | 7 | Multiprotocol bridge. |
PF_ATMPVC | 8 | ATM PVCs. |
PF_X25 | 9 | Reserved for X.25 project. |
PF_INET6 | 10 | IP version 6. |
PF_ROSE | 11 | Amateur Radio X.25 PLP. |
PF_DECnet | 12 | Reserved for DECnet project. |
PF_NETBEUI | 13 | Reserved for 802.2LLC project. |
PF_SECURITY | 14 | Security callback pseudo AF. |
PF_KEY | 15 | PF_PF_KEY key management API. |
PF_NETLINK | 16 | Alias to emulate 4.4BSD. |
PF_ROUTE | 16 (PF_NETLINK) | Alias to emulate 4.4BSD. |
PF_PACKET | 17 | Packet family. |
PF_ASH | 18 | Ash. |
PF_ECONET | 19 | Packet family. |
PF_ATMSVC | 20 | ATM SVCs. |
PF_SNA | 22 | Linux SNA Project |
PF_IRDA | 23 | IRDA sockets. |
PF_PPPOX | 24 | PPPoX sockets. |
PF_WANPIPE | 25 | Wanpipe API sockets. |
PF_BLUETOOTH | 31 | Bluetooth sockets. |
PF_MAX | 32 | For now.. |
※「/usr/include/bits/socket.hより抜粋」
※引数1には、「AF_*」が使用される。
AF_UNSPEC | 0:PF_UNSPEC | 指定なし(IPv4,IPv6両方対応時などに使用) |
AF_LOCAL | 1:PF_LOCAL | ローカル通信 |
AF_UNIX | 1:PF_UNIX | ローカル通信 |
AF_FILE | 1:PF_FILE | ファイル |
AF_INET | 2:PF_INET | IPv4 インターネット・プロトコル(IP/TCP/UDP) |
AF_AX25 | 3:PF_AX25 | アマチュア無線 AX.25 プロトコル |
AF_IPX | 4:PF_IPX | IPX - Novell プロトコル |
AF_APPLETALK | 5:PF_APPLETALK | アップルトーク |
AF_NETROM | 6:PF_NETROM | NetRomプロトコール |
AF_BRIDGE | 7:PF_BRIDGE | |
AF_ATMPVC | 8:PF_ATMPVC | 生ATM PVCにアクセス |
AF_X25 | 9:PF_X25 | ITU-T X.25 / ISO-8208 プロトコル |
AF_INET6 | 10:PF_INET6 | IPv6 インターネット・プロトコル |
AF_ROSE | 11:PF_ROSE | Roseプロトコール |
AF_DECnet | 12:PF_DECnet | |
AF_NETBEUI | 13:PF_NETBEUI | Net BIOSプロトコル |
AF_SECURITY | 14:PF_SECURITY | |
AF_KEY | 15:PF_KEY | キーソケット |
AF_NETLINK | 16:PF_NETLINK | カーネル・ユーザ・デバイス |
AF_ROUTE | 16:PF_ROUTE | 経路制御プロトコル |
AF_PACKET | 17:PF_PACKET | 低レベルのパケットインターフェース |
AF_ASH | 18:PF_ASH | |
AF_ECONET | 19:PF_ECONET | |
AF_ATMSVC | 20:PF_ATMSVC | |
AF_SNA | 22:PF_SNA | IBM SNA |
AF_IRDA | 23:PF_IRDA | |
AF_PPPOX | 24:PF_PPPOX | PPPoE/PPPoA/PPPoEoA ...他 |
AF_WANPIPE | 26:PF_WANPIPE | |
AF_BLUETOOTH | 31:PF_BLUETOOTH | |
AF_MAX | 32:PF_MAX |
※「/usr/include/bits/socket.hより抜粋」
※「winsock」には他のプロトコールの記載も模様。(参考:Geekなぺーじ : アドレスファミリ)
SOCK_STREAM | 1 | ストリーム用(TCP) [信頼性あり] |
SOCK_DGRAM | 2 | データグラム用(UDP) [信頼性なし] |
SOCK_RAW | 3 | 生通信プロトコールへのアクセス用 |
SOCK_RDM | 4 | データグラム用 [信頼性あり] |
SOCK_SEQPACKET | 5 | UNIXドメイン用(AF_LOCAL, AF_FILE) |
SOCK_PACKET | 10 | 現在は使用されていない |
※「/usr/include/bits/socket.hより抜粋」
デフォルト「0」
int fdServerSocket = 0; /* TCP IPv4でストリーム型のソケットを作成 */ fdServerSocket = socket (AF_INET, SOCK_STREAM, 0); if (fdServerSocket < 0){ perror("socket error"); exit(-1); }