JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... ることもできる。さらに Linux では、ファイル システムに依存しない抽象名前空間 (abstract namespace) もサポートしている。 Valid socket types in the UNIX domain are: SOCK_STREAM , for a stream-oriented socket; SOCK_DGRAM , for a datagram-oriented socket that ... preserves message boundaries (as on most UNIX implementations, UNIX domain datagram sockets are always reliable and don't reorder datagrams); and (since Linux 2.6.4) SOCK_SEQPACKET , for a sequenced-packet socket ... * unnamed (名前なし) : bind (2) を使ってパス名に結び付けることができないストリーム型のソケットは 名前を持たない。同様に、 socketpair (2) で作成される 2 つのソケットも名前を持たない。 名前なしのソケットのアドレスを返す際には、 その長さは sizeof(sa_fami ... ... ある。 プロトコルモジュールは プロトコルファミリー (protocol familiy) (例: AF_INET , AF_IPX , AF_PACKET ) と ソケットタイプ (socket types) (例: SOCK_STREAM , SOCK_DGRAM ) に分類できる。 これらに関するより詳しい情報は socket (2) を参照のこと。 ソケット層の ... パケットを送受信したり、その他のソケット操作を 行ったりするために用いられる。詳細はそれぞれのマニュアルページを 見てほしい。 socket (2) はソケットを生成する。 connect (2) はソケットをリモートのソケットアドレスに接続する。 bind (2) はソケットをローカルのソ ... トに新しい接続が来たら受信するように伝え、 accept (2) は外部からやってきた接続に対して新しいソケットを得るために用いられる。 socketpair (2) は互いに接続された二つの名前無しソケット (anonymous socket) を返す ( AF_UNIX のような、いくつかのローカルなファミリ ... ... = 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 in ... clude 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 IP protocol directly. protocol ... ... トコル */ packet_socket = socket(AF_PACKET, int socket_type , int protocol ); 説明 packet ソケットは、デバイスドライバ (OSI レイヤ 2) レベルで 生の ... 受信するために用いられる。 packet ソケットを使うと、ユーザー空間で物理層の上に プロトコルモジュールを実装することができる。 socket_type には SOCK_RAW と SOCK_DGRAM のいずれかを指定する。 SOCK_RAW はリンクレベルヘッダーを含む raw パケットを、 SOCK_DGRAM ... のものは、 カーネルに実装されているプロトコルに渡される前の段階で、 packet ソケットに渡される。 In order to create a packet socket, a process must have the CAP_NET_RAW capability in the user namespace that governs its network namespace. SOCK_RAW パケット ... ... ockaddr * addr , socklen_t * addrlen ); #define _GNU_SOURCE /* feature_test_macros (7) 参照 */ #include < sys/socket.h > int accept4(int sockfd , struct sockaddr * addr , socklen_t * addrlen , int flags ); 説明 accept () システムコールは、 ... 接続指向のソケット型 ( SOCK_STREAM , SOCK_SEQPACKET ) で用いられる。 この関数は、接続待ちソケット socket 宛ての保留状態の接続要求が入っているキューから 先頭の接続要求を取り出し、接続済みソケットを新規に生成し、 そのソケットを参 ... ケットは、接続待ち (listen) 状態ではない。 もともとのソケット sockfd はこの呼び出しによって影響を受けない。 引数 sockfd は、 socket (2) によって生成され、 bind (2) によってローカルアドレスにバインドされ、 listen (2) を経て接続を待っているソケットである。 ... ... ockaddr * addr , socklen_t * addrlen ); #define _GNU_SOURCE /* feature_test_macros (7) 参照 */ #include < sys/socket.h > int accept4(int sockfd , struct sockaddr * addr , socklen_t * addrlen , int flags ); 説明 accept () システムコールは、 ... 接続指向のソケット型 ( SOCK_STREAM , SOCK_SEQPACKET ) で用いられる。 この関数は、接続待ちソケット socket 宛ての保留状態の接続要求が入っているキューから 先頭の接続要求を取り出し、接続済みソケットを新規に生成し、 そのソケットを参 ... ケットは、接続待ち (listen) 状態ではない。 もともとのソケット sockfd はこの呼び出しによって影響を受けない。 引数 sockfd は、 socket (2) によって生成され、 bind (2) によってローカルアドレスにバインドされ、 listen (2) を経て接続を待っているソケットである。 ... ... en 引数は addr の大きさを示す。 addr のアドレスのフォーマットはソケット sockfd のアドレス空間により異なる。 さらなる詳細は socket (2) を参照のこと。 ソケット sockfd が SOCK_DGRAM 型であれば、 addr は、デフォルトのデータグラムの送信先のアドレスであり、 ... であれば、このシステムコールは addr で指定されたアドレスに結び付けられたソケットに対する接続の 作成を試みる。 Some protocol sockets (e.g., UNIX domain stream sockets) may successfully connect () only once. Some protocol sockets (e.g., datagram sockets i ... n the UNIX and Internet domains) may use connect () multiple times to change their association. Some protocol sockets (e.g., TCP sockets as well as datagram sockets in the UNIX and Internet domains) may dissolve the association by connecti ... ... の振る舞いは RFC 1122 での指定に従ったものである。 Linux 2.0 と 2.2 では、古いコードとの互換性のために、 SO_BSDCOMPAT SOL_SOCKET オプションを設定すれば、ソケットが接続されている 場合に限ってリモートのエラーを受信するようにできた ( EPROTO と EMSGSIZE を ... カルで生成されたエラーは常に渡される。 このソケットオプションのサポートはそれ以降のバージョンの Linux で 削除された。詳細は socket (7) を参照。 IP_RECVERR オプションが有効になっていると、 すべてのエラーはソケットのエラーキューに保存される。 これは MSG_E ... IPPROTO_UDP を指定して呼び出す。 注釈がない限り、 optval は int へのポインターである。 Following is a list of UDP-specific socket options. For details of some other socket options that are also applicable for UDP sockets, see socket (7). UDP_CORK (Linu ... ... ddr , socklen_t addrlen ); 説明 socket (2) でソケットが作成されたとき、そのソケットは名前空間 (アドレスファミリー) に 存在するが、アドレスは割り当てられていない。 ... 際に遭遇したシンボリックリンクが多過ぎる。 ENAMETOOLONG addr が長過ぎる。 ENOENT A component in the directory prefix of the socket pathname does not exist. ENOMEM カーネルに、利用可能なメモリーが十分にない。 ENOTDIR パス名の構成要素がディレクトリではない ... 載されている。 以下の例は、UNIX ドメイン ( AF_UNIX ) でストリームソケットを bind する方法を示したものである。 #include < sys/socket.h > #include < sys/un.h > #include < stdlib.h > #include < stdio.h > #include < string.h > #define MY_SOCK_PATH "/somepath ... ... , int optname , const void * optval , socklen_t optlen ); 説明 getsockopt () と setsockopt () は、ファイルディスクリプター socket で参照されるソケットに関連するオプションの操作を行う。 オプションは複数のプロトコル層(level)に存在するかもしれないが、 これ ... ションの層 (level) と オプションの名前を指定しなければならない。 ソケット API 層でオプションを操作する為には、 level を SOL_SOCKET に指定する。 他の全ての層でオプションを操作する為には、与えられたオプションの 制御主体となるプロトコルのプロトコル番号を指 ... name および指定されたオプションは解釈されずに、適切なプロトコルモジュールに 渡されて解釈される。インクルードファイル < sys/socket.h > には後述のソケット層のオプションの定義が含まれている。 他のプロトコル層では名前や形式は異なる。 マニュアルのセクション ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。