JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... type , int protocol ); 説明 socket () creates an endpoint for communication and returns a file descriptor that refers to that endpoint. The file descriptor ... インを指定する; これはどの プロトコルファミリー (protocol family) を通信に使用するかを指定する。 これらのファミリーは < sys/socket.h > に定義されている。現在カーネルが理解できるフォーマットは以下の通り。 名前 目的 マニュアル AF_UNIX ローカル通信 unix ... ) AF_X25 ITU-T X.25 / ISO-8208 プロトコル x25 (7) AF_INET6 IPv6 インターネットプロトコル ipv6 (7) AF_DECnet DECet protocol sockets AF_KEY Key management protocol, originally developed for usage with IPsec AF_NETLINK カーネルユーザーインターフェースデ ... ... = socket(AF_INET, SOCK_STREAM, 0); udp_socket = socket(AF_INET, SOCK_DGRAM, 0); raw_socket = socket(AF_INET, SOCK_RAW, protocol ) ... IP ルーターも実装されている。 プログラミングインターフェースは BSD ソケットと互換である。 ソケットに関するより詳細な情報は socket (7) を参照のこと。 An IP socket is created using socket (2): socket(AF_INET, socket_type, protocol); Valid socket types ... include SOCK_STREAM to open a stream socket, SOCK_DGRAM to open a datagram socket, and SOCK_RAW to open a raw (7) socket to access the ... ... トコル */ packet_socket = socket(AF_PACKET, int socket_type , int protocol ); 説明 packet ソケットは、デバイスドライバ (OSI レイヤ 2) レベルで 生 ... 受信するために用いられる。 packet ソケットを使うと、ユーザー空間で物理層の上に プロトコルモジュールを実装することができる。 socket_type には SOCK_RAW と SOCK_DGRAM のいずれかを指定する。 SOCK_RAW はリンクレベルヘッダーを含む raw パケットを、 SOCK_DGRA ... M はリンクレベルヘッダーが削除された加工済みパケットを示す。 リンクレベルヘッダー情報は sockaddr_ll 構造体で共通のフォーマットで入手できる。 protocol には IEEE 802.3 プロトコル番号を ネットワークバイトオーダーで指定 ... ... (2) または write (2) を継続することができる。 #define MAX_EVENTS 10 struct epoll_event ev, events[MAX_EVENTS]; int listen_sock, conn_sock, nfds, epollfd; /* Code to set up listening socket, 'listen_sock', (socket(), bind(), listen()) omitted */ epol ... l_create1(0); if (epollfd == -1) { perror("epoll_create1"); exit(EXIT_FAILURE); } ev.events = EPOLLIN; ev.data.fd = listen_sock; if (epoll_ctl(epollfd, EPOLL_CTL_ADD, listen_sock, &ev) == -1) { perror("epoll_ctl: listen_sock"); exit(EXIT_FAILURE); } ... if (nfds == -1) { perror("epoll_wait"); exit(EXIT_FAILURE); } for (n = 0; n < nfds; ++n) { if (events[n].data.fd == listen_sock) { conn_sock = accept(listen_sock, (struct sockaddr *) &addr, &addrlen); if (conn_sock == -1) { perror("accept"); exit(EXI ... ... = socket(AF_INET6, SOCK_RAW, protocol ); udp6_socket = socket(AF_INET6, SOCK_DGRAM, protocol ); 説明 Linux 2.2 では、Internet Pro ... .1 での実装に基づいて、 IPv6 の基本的な API を解説する。 インターフェースは BSD ソケットインターフェースをもとにしている。 socket (7) を参照。 IPv6 API は、 IPv4 API ( ip (7) 参照) とほぼ互換になることを目指している。 この man ページでは相違点のみを解 ... トが取得すると、 発信元アドレスが v6 にマップされ、その接続 (パケット) も v6 にマップされる。 アドレスのフォーマット struct sockaddr_in6 { sa_family_t sin6_family; /* AF_INET6 */ in_port_t sin6_port; /* port number */ uint32_t sin6_flowinfo; /* IPv6 f ... ... agram Delivery Protocol, DDP) の 上位層のプロトコルの集合で、AppleTalk アドレスフォーマットを使う。 AppleTalk ファミリーは SOCK_STREAM (ADSP), SOCK_DGRAM (DDP), SOCK_RDM (ATP), SOCK_SEQPACKET (ASP) を提供する。 現在のところカーネルには DDP のみが実装 ... alk アドレスフォーマットが定義されている。 AppleTalk プロトコルファミリーのソケットは、以下のアドレス構造体を使う。 struct sockaddr_at { short sat_family; u_char sat_port; struct at_addr sat_addr; char sat_zero[ 8 ]; }; ソケットのポートは bind (2) に ... ひとつずつソケットをオープンすることと等価である。 ソケットのポートと、プライマリアドレスまたは ATADDR_LATENET の一方が getsockname (2) によって返される。 関連項目 bind (2), getsockname (2), atalkd (8). ... ... る。 getaddrinfo () が用いる addrinfo 構造体は以下のフィールドを含む。 struct addrinfo { int ai_flags; int ai_family; int ai_socktype; int ai_protocol; socklen_t ai_addrlen; struct sockaddr *ai_addr; char *ai_canonname; struct addrinfo *ai_next; }; hin ... ための基準を指定する。 hints が NULL でない場合、 hints は addrinfo 構造体を指し示し、その構造体のフィールド ai_family , ai_socktype , ai_protocol で getaddrinfo () が返すソケットアドレス集合に対する基準を指定する。 ai_family このフィールドは返されるア ... e と service で使用できるいずれかのアドレスファミリー (例えば IPv4 か IPv6) の ソケットアドレスを返すことを求められる。 ai_socktype このフィールドは推奨のソケット型 (例えば SOCK_STREAM や SOCK_DGRAM ) を指定する。 このフィールドに 0 を指定すると、任意 ... ... る。 getaddrinfo () が用いる addrinfo 構造体は以下のフィールドを含む。 struct addrinfo { int ai_flags; int ai_family; int ai_socktype; int ai_protocol; socklen_t ai_addrlen; struct sockaddr *ai_addr; char *ai_canonname; struct addrinfo *ai_next; }; hin ... ための基準を指定する。 hints が NULL でない場合、 hints は addrinfo 構造体を指し示し、その構造体のフィールド ai_family , ai_socktype , ai_protocol で getaddrinfo () が返すソケットアドレス集合に対する基準を指定する。 ai_family このフィールドは返されるア ... e と service で使用できるいずれかのアドレスファミリー (例えば IPv4 か IPv6) の ソケットアドレスを返すことを求められる。 ai_socktype このフィールドは推奨のソケット型 (例えば SOCK_STREAM や SOCK_DGRAM ) を指定する。 このフィールドに 0 を指定すると、任意 ... ... る。 getaddrinfo () が用いる addrinfo 構造体は以下のフィールドを含む。 struct addrinfo { int ai_flags; int ai_family; int ai_socktype; int ai_protocol; socklen_t ai_addrlen; struct sockaddr *ai_addr; char *ai_canonname; struct addrinfo *ai_next; }; hin ... ための基準を指定する。 hints が NULL でない場合、 hints は addrinfo 構造体を指し示し、その構造体のフィールド ai_family , ai_socktype , ai_protocol で getaddrinfo () が返すソケットアドレス集合に対する基準を指定する。 ai_family このフィールドは返されるア ... e と service で使用できるいずれかのアドレスファミリー (例えば IPv4 か IPv6) の ソケットアドレスを返すことを求められる。 ai_socktype このフィールドは推奨のソケット型 (例えば SOCK_STREAM や SOCK_DGRAM ) を指定する。 このフィールドに 0 を指定すると、任意 ... ... ddr , socklen_t addrlen ); 説明 socket (2) でソケットが作成されたとき、そのソケットは名前空間 (アドレスファミリー) に 存在するが、アド ... レスは割り当てられていない。 bind () は、ファイルディスクリプター sockfd で参照されるソケットに addr で指定されたアドレスを割り当てる。 addrlen には addr が指すアドレス構造体のサイズをバイト単位 ... で指定する。 伝統的にこの操作は 「ソケットに名前をつける」 と呼ばれる。 SOCK_STREAM ソケットが接続を受け付けられるようにするには ( accept (2) を参照)、通常その前に bind () を使用してローカルアドレスを ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。