Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > socketライブラリ > Socketクラス

class Socket

クラスの継承リスト: Socket < BasicSocket < IO < Enumerable < File::Constants < Object < Kernel

要約

ソケットそのものに対するシステムコールレベルのアクセスを提供 するクラス。

Perl のソケットに対するアクセスと同レベルの機能を 提供しています。このクラスではソケットアドレスは Array#pack された文字列で指定します (socket/ソケットアドレス構造体を pack した文字列を参照)。

一般的なソケットプログラミングはより高レベルの TCPSocket クラスや TCPServer クラスを用い て行われることが多く、このクラスはあまり用いられません。

目次

特異メソッド
getaddrinfo gethostbyaddr gethostbyname gethostname getnameinfo getservbyname new open pack_sockaddr_in sockaddr_in pack_sockaddr_un sockaddr_un pair socketpair unpack_sockaddr_in unpack_sockaddr_un
インスタンスメソッド
accept accept_nonblock bind connect connect_nonblock listen recvfrom recvfrom_nonblock sysaccept
定数
AF_APPLETALK PF_APPLETALK AF_ATM PF_ATM AF_AX25 PF_AX25 AF_CCITT PF_CCITT AF_CHAOS PF_CHAOS AF_CNT PF_CNT AF_COIP PF_COIP AF_DATAKIT PF_DATAKIT AF_DEC PF_DEC AF_DLI PF_DLI AF_E164 AF_ECMA PF_ECMA AF_HYLINK PF_HYLINK AF_IMPLINK PF_IMPLINK AF_INET PF_INET AF_INET6 PF_INET6 AF_IPX PF_IPX AF_ISDN PF_ISDN AF_ISO AF_OSI PF_ISO PF_OSI AF_LAT PF_LAT AF_LINK PF_LINK AF_LOCAL AF_UNIX PF_LOCAL PF_UNIX AF_MAX AF_NATM PF_NATM AF_NDRV PF_NDRV AF_NETBIOS PF_NETBIOS AF_NETGRAPH PF_NETGRAPH AF_NS PF_NS AF_PPP PF_PPP AF_PUP PF_PUP AF_ROUTE PF_ROUTE AF_SIP PF_SIP AF_SNA PF_SNA AF_SYSTEM PF_SYSTEM AF_UNSPEC AI_ADDRCONFIG AI_ALL AI_CANONNAME AI_DEFAULT AI_MASK AI_NUMERICHOST AI_PASSIVE AI_V4MAPPED AI_V4MAPPED_CFG EAI_ADDRFAMILY EAI_AGAIN EAI_BADFLAGS EAI_BADHINTS EAI_FAIL EAI_FAMILY EAI_MAX EAI_MEMORY EAI_NODATA EAI_NONAME EAI_PROTOCOL EAI_SERVICE EAI_SOCKTYPE EAI_SYSTEM INADDR_ALLHOSTS_GROUP INADDR_ANY INADDR_BROADCAST INADDR_LOOPBACK INADDR_MAX_LOCAL_GROUP INADDR_NONE INADDR_UNSPEC_GROUP IPPORT_RESERVED IPPORT_USERRESERVED IPPROTO_BIP IPPROTO_EGP IPPROTO_EON IPPROTO_GGP IPPROTO_HELLO IPPROTO_ICMP IPPROTO_IDP IPPROTO_IGMP IPPROTO_IP IPPROTO_MAX IPPROTO_ND IPPROTO_PUP IPPROTO_RAW IPPROTO_TCP IPPROTO_TP IPPROTO_UDP IPPROTO_XTP IP_ADD_MEMBERSHIP IP_DEFAULT_MULTICAST_LOOP IP_DEFAULT_MULTICAST_TTL IP_DROP_MEMBERSHIP IP_HDRINCL IP_MAX_MEMBERSHIPS IP_MULTICAST_IF IP_MULTICAST_LOOP IP_MULTICAST_TTL IP_OPTIONS IP_RECVDSTADDR IP_RECVOPTS IP_RECVRETOPTS IP_RETOPTS IP_TOS IP_TTL MSG_COMPAT MSG_CTRUNC MSG_DONTROUTE MSG_DONTWAIT MSG_EOF MSG_EOR MSG_FLUSH MSG_HAVEMORE MSG_HOLD MSG_OOB MSG_PEEK MSG_RCVMORE MSG_SEND MSG_TRUNC MSG_WAITALL NI_DGRAM NI_MAXHOST NI_MAXSERV NI_NAMEREQD NI_NOFQDN NI_NUMERICHOST NI_NUMERICSERV PF_KEY PF_MAX PF_PIP PF_RTIP PF_UNSPEC PF_XTP SHUT_RD SHUT_RDWR SHUT_WR SOCK_DGRAM SOCK_PACKET SOCK_RAW SOCK_RDM SOCK_SEQPACKET SOCK_STREAM SOL_ATALK SOL_AX25 SOL_IP SOL_IPX SOL_SOCKET SOL_TCP SOL_UDP SOPRI_BACKGROUND SOPRI_INTERACTIVE SOPRI_NORMAL SO_ACCEPTCONN SO_ACCEPTFILTER SO_ATTACH_FILTER SO_BINDTODEVICE SO_BROADCAST SO_DEBUG SO_DETACH_FILTER SO_DONTROUTE SO_DONTTRUNC SO_ERROR SO_KEEPALIVE SO_LINGER SO_NKE SO_NOSIGPIPE SO_NO_CHECK SO_NREAD SO_OOBINLINE SO_PASSCRED SO_PEERCRED SO_PEERNAME SO_PRIORITY SO_RCVBUF SO_RCVLOWAT SO_RCVTIMEO SO_REUSEADDR SO_REUSEPORT SO_SECURITY_AUTHENTICATION SO_SECURITY_ENCRYPTION_NETWORK SO_SECURITY_ENCRYPTION_TRANSPORT SO_SNDBUF SO_SNDLOWAT SO_SNDTIMEO SO_TIMESTAMP SO_TYPE SO_USELOOPBACK SO_WANTMORE SO_WANTOOBFLAG TCP_MAXSEG TCP_NODELAY

特異メソッド

getaddrinfo(nodename, servname, family=nil, socktype=nil, protocol=nil, flags=nil) -> Array[permalink][rdoc]

[RFC2553]で定義された getaddrinfo() の機能を提供するクラスメソッド。この関数は gethostbyname() や getservbyname() の代わりとして用意されており、 IP のバージョンに依存しないプログラムを書くための標準的な API です。

[PARAM] nodename:
ホスト名を指定します。 必須引数です。 (socket/ホスト指定形式を参照)
[PARAM] servname:
サービス名を指定します。 必須引数です。 (socket/サービス指定形式を参照)
[PARAM] family:
アドレスファミリー。Socket::Constants::AF_INET など、AF_ で始まる定数を指定します。
[PARAM] socktype:
ソケットタイプ。 Socket::Constants::SOCK_STREAM など、 SOCK_ で始まる定数を指定します。
[PARAM] protocol:
プロトコル。Socket::Constants::IPPROTO_IP など、IPPROTO_ で始まる定数を指定します。
[PARAM] flags:
getaddrinfo(3) の第3引数に指定する addrinfo 構造体の ai_flags メンバに相当する Fixnum。 Socket::AI_PASSIVEなど。
[RETURN]
7つの要素からなるアドレス情報に関する配列を返します。
[EXCEPTION] SocketError:
getaddrinfo(3)がエラーを返したときに発生する例外です

アドレス情報について

アドレス情報とは7つの要素からなる次の形の配列です。

必須引数について

必須引数の意味は以下の通りです。

省略可能な引数について

残りの引数は省略可能です。

定数の意味について

引数に指定できる定数の意味については getaddrinfo(3) を参照して下さい。

使用例

例:

p Socket.getaddrinfo(Socket.gethostname, "ftp")
#=> [["AF_INET", 21, "helium.ruby-lang.org", "210.251.121.214", 2, 1, 6]]

pp Socket.getaddrinfo(Socket.gethostname, nil)
#=> [["AF_INET", 0, "helium.ruby-lang.org", "210.251.121.214", 2, 1, 6],
#    ["AF_INET", 0, "helium.ruby-lang.org", "210.251.121.214", 2, 2, 17],
#    ["AF_INET", 0, "helium.ruby-lang.org", "210.251.121.214", 2, 3, 0]]
gethostbyaddr(host, type = Socket::AF_INET) -> Array[permalink][rdoc]

sockaddr 構造体をパックした文字列からホスト情報を返します。 ホスト情報の構造は Socket.gethostbyname と同じです。 type には、アドレスタイプ(デフォルトは Socket::AF_INET)を指定します。

[PARAM] host:
ホストを文字列で指定します。
[PARAM] type:
アドレスタイプ(デフォルトはSocket::AF_INET)を指定します。
[EXCEPTION] SocketError:
gethostbyaddr(3) の呼び出しにエラーがあった場合に発生します。
gethostbyname(host) -> Array[permalink][rdoc]

ホスト名または IP アドレス(指定方法に関しては socket/ホスト指定形式を参照) からホストの情報を返します。

[PARAM] host:
文字列でホストを指定します。
[RETURN]
ホスト情報を含んだ4要素の配列を返します。

返り値のホスト情報について

ホスト情報は以下の 4 要素の配列で表現されています。

第四要素のホストのアドレスは、各アドレスタイプに対応する C のアドレス構造体を pack した文字列として表現されています。 例えばアドレスタイプが AF_INET (定数 2) ならば Socket.unpack_sockaddr_in で unpack できます。

使用例

irb(main):009:0> Socket.gethostbyname("210.251.121.214")
["helium.ruby-lang.org", ["helium"], 2, "\322\373y\326"]

irb(main):009:0> Socket.unpack_sockaddr_in(Socket.gethostbyname("210.251.121.214")[3])[1]
"210.251.121.214"
gethostname -> String[permalink][rdoc]

システムの標準のホスト名を取得します。

ホストの別名やアドレスなど他の情報を得るには Socket.getaddrinfo を使ってください。 ただし、これは不可能な場合もあります。

例:

p Socket.gethostname   #=> "helium.ruby-lang.org"
getnameinfo(sa, flags = 0) -> Array[permalink][rdoc]

[RFC2553] で定義された getnameinfo() の機能を提供するク ラスメソッド。 gethostbyaddr() や getservbyport() の代 わりとして用意されています。IPのバージョンに依存しないプログラムを 書くための標準的なAPIです。

[PARAM] sa:
文字列か配列を与えます。
[PARAM] flags:
省略可能な第2引数 flags には getnameinfo(3) の第7番目の引数に指定する flags に相当する Fixnum を与えます。
[RETURN]
配列を返し、その要素はアドレスとポートを表す文字列です。
[EXCEPTION] SocketError:
getnameinfo(3) がエラーを起こした場合に生じる例外

引数 sa について

引数 sa には文字列か配列を与えます。文字列の場合は sockaddr 構造体 のパック文字列を与えます。具体的には BasicSocket#getsockname の値が利用できます。配列を与える場合には、要素が3つの場合と4つの場合 があります。

アドレスファミリーには Socket::AF_INET 等の定数の他に文字列 で "AF_INET" もしくは "AF_INET6" もしくは nil が 指定できます。ただしIPv6が使えないようにコンパイルされている場合は "AF_INET6" は無効な指定となります。アドレスファミリーに nil を指定することは Socket::AF_UNSPEC を指定すること と等価です。

サービス、ホストの指定に関しては socket/サービス指定形式socket/ホスト指定形式を参照してください。

要素が3つの場合でも、ホストにはアドレスを指定できますが、要素が4つ の場合には、最後の要素を名前解決しないことが保証されます。

引数flagsについて

省略可能な第2引数 flags には getnameinfo(3) の第7番目の引数に指定する flags に相当する Fixnum を与えます。

引数flagsを構成するための定数として Socket::NI_MAXHOST、 Socket::NI_MAXSERV、 Socket::NI_NOFQDN、 Socket::NI_NUMERICHOST、 Socket::NI_NAMEREQD、 Socket::NI_NUMERICSERV、 Socket::NI_DGRAM が用意されている場合があります。

これらの定数の意味については getnameinfo(3)を参照 して下さい。

使用例

Socket.getnameinfo(Socket.sockaddr_in('21','127.0.0.1'))
#=> ["localhost", "ftp"]

Socket.getnameinfo([nil, 21,'127.0.0.1'])
#=> ["localhost", "ftp"]
getservbyname(service, proto = "tcp") -> Fixnum[permalink][rdoc]

service, protoに対応するポート番号を返 します。protoの省略値は"tcp"です。

[PARAM] service:
サービス名を文字列で指定します。例えば、"ftp", "telnet" が相当します。
[PARAM] proto:
プロトコル名を文字列で指定します。省略値は"tcp" です。
[RETURN]
ポート番号を整数で返します。
open(domain, type, protocol) -> Socket[permalink][rdoc]
new(domain, type, protocol) -> Socket

新しいソケットを生成します。domain、type、 protocol はインクルードファイルにある定数で指定しま す。ほとんどの定数は Socket::AF_INET のように Socket クラスの定数として定義されています。domain とtype に関しては、"AF_INET", "SOCK_STREAM" のように文字列でも指定できますが、文 字列ですべての機能を指定できる保証はありません。

例えば、IPv4 の TCP ソケットは以下のように生成されます。

s = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)

なお、socket(2) の domain 引数において AF_ と PF_ のどちらの定数を使用するかについては混乱がありますが、 Stevens の「UNIX ネットワークプログラミング第2版 Vol.1」4.2節に述べられているように、 現実的にはどちらでも問題なく、また、既存のコーディング習慣として AF_ が用いられることが多いため、 ここでは AF_ を使用しています。

[PARAM] domain:
例えば、<sys/socket.h> のようなインクルードファイルに定義されている定数を指定します。
[PARAM] type:
例えば、<sys/socket.h> のようなインクルードファイルに定義されている定数を指定します。
[PARAM] protocol:
プロトコルに使用する数値を指定します。
sockaddr_in(port, host) -> String[permalink][rdoc]
pack_sockaddr_in(port, host) -> String

指定したアドレスをsocket/ソケットアドレス構造体を pack した文字列 で返します。port は、ポート番号を表す Fixnum あるいは、ポート 番号、サービス名を表す文字列です。

[PARAM] port:
ポート番号を表す Fixnum あるいは、ポート番号、サービス名を表す文字列を指定します。
[PARAM] host:
ホストを文字列で指定します。
[RETURN]
指定したアドレスを返します。

例:

require 'socket'
p Socket.sockaddr_in("echo", "localhost")
=> "\002\000\000\a\177\000\000\001\000\000\000\000\000\000\000\000"
p Socket.sockaddr_in("echo", "::1")
=> "\n\000\000\a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000"
sockaddr_un(path) -> String[permalink][rdoc]
pack_sockaddr_un(path) -> String

指定したアドレスをsocket/ソケットアドレス構造体を pack した文字列 で返します。

[PARAM] path:
パスを文字列で指定します。

例:

require 'socket'
p Socket.sockaddr_un("/tmp/.X11-unix/X0")
=> "\001\000/tmp/.X11-unix/X0\000...."
pair(domain, type, protocol) -> Array[permalink][rdoc]
socketpair(domain, type, protocol) -> Array

相互に結合されたソケットのペアを含む2要素の配列を返します。 引数の指定は Socket.open と同じです。

[PARAM] domain:
Socket.open を参照してください。
[PARAM] type:
Socket.open を参照してください。
[PARAM] protocol:
Socket.open を参照してください。

[SEE_ALSO] Socket.open

unpack_sockaddr_in(sockaddr) -> Array[permalink][rdoc]

socket/ソケットアドレス構造体を pack した文字列を unpack したアドレスを返します。返される値は [port, ipaddr] の配列です。

[PARAM] sockaddr:
ソケットアドレス構造体を pack した文字列socket/ソケットアドレス構造体を pack した文字列を指定します。

例:

require 'socket'
p Socket.unpack_sockaddr_in(Socket.sockaddr_in("echo", "localhost"))
=> [7, "127.0.0.1"]
p Socket.unpack_sockaddr_in(Socket.sockaddr_in("echo", "::1"))
=> [7, "::1"]
unpack_sockaddr_un(sockaddr) -> String[permalink][rdoc]

socket/ソケットアドレス構造体を pack した文字列を unpack したソケットパス名を返します。

[PARAM] sockaddr:
ソケットアドレス構造体を pack した文字列socket/ソケットアドレス構造体を pack した文字列を指定します。

例:

require 'socket'
p Socket.unpack_sockaddr_un(Socket.sockaddr_un("/tmp/.X11-unix/X0"))
=> "/tmp/.X11-unix/X0"

インスタンスメソッド

accept -> Array[permalink][rdoc]

新しい接続を受け付けて、新しい接続に対するソケットとアドレスの ペアを返します。accept(2) を参照。

たとえば IPv4 の TCP サーバソケットを生成し、accept でクライアントからの接続を受け付けるには以下のようにします。

例:

serv = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
sockaddr = Socket.sockaddr_in(8080, "0.0.0.0")
serv.bind(sockaddr)
serv.listen(5)
sock = serv.accept
accept_nonblock -> Array[permalink][rdoc]

ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。

引数、返り値は Socket#accept と同じです。

accept(2) がエラーになった場合、 EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。

bind(my_sockaddr) -> 0[permalink][rdoc]

ソケットを my_sockaddr に結合します。bind(2) と同じ働きをします。

[PARAM] my_sockaddr:
ソケットアドレス構造体を pack した文字列socket/ソケットアドレス構造体を pack した文字列を指定します。
[RETURN]
0 を返します。
connect(server_sockaddr) -> 0[permalink][rdoc]

connect(2) でソケットを接続します。

server_sockaddr は、 socket/ソケットアドレス構造体を pack した文字列 です。

0 を返します。

[PARAM] server_sockaddr:
接続先アドレス
[EXCEPTION] Errno::EXXX:
connect(2) がエラーを報告した場合に発生します。詳しくは man を参照してください。

たとえば IPv4 の TCP ソケットを生成し、connect で www.ruby-lang.org:80 に接続するには以下のようにします。

例:

s = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
sockaddr = Socket.sockaddr_in(80, "www.ruby-lang.org")
s.connect(sockaddr)
s.write "GET / HTTP/1.0\r\n\r\n"
print s.read
connect_nonblock(server_sockaddr) -> 0[permalink][rdoc]

ソケットをノンブロッキングモードに設定した後、 connect(2) を呼び出します。

引数、返り値は Socket#connect と同じです。

[PARAM] server_sockaddr:
接続先アドレス
[EXCEPTION] Errno::EXXX:
connect(2) がエラーを報告した場合に発生します。詳しくは man を参照してください。
listen(backlog) -> 0[permalink][rdoc]

listen(2) と同じ働きをします。

0 を返します。

[PARAM] backlog:
接続を保留できる最大数
[RETURN]
0 を返します。
recvfrom(maxlen, flags=0) -> [String, String][permalink][rdoc]

ソケットからデータを受け取ります。

Socket#recv と同様ですが、返り値として データ文字列と相手ソケットのアドレスのペアが返されます。

flags には Socket::MSG_* という定数の bitwise OR を渡します。 詳しくは recvfrom(2) を参照してください。

[PARAM] maxlen:
ソケットから受けとるデータの最大値
[PARAM] flags:
フラグ
[EXCEPTION] Errno::EXXX:
recvfrom(2) がエラーを報告した場合に発生します。詳しくは Errno と man を見てください。

例:

s1 = Socket.new(Socket::AF_INET, Socket::SOCK_DGRAM, 0)
s2 = Socket.new(Socket::AF_INET, Socket::SOCK_DGRAM, 0)
s1.bind(Socket.sockaddr_in(0, "0.0.0.0"))
s2.send("foo", 0, s1.getsockname)
mesg, sockaddr = s1.recvfrom(10)
p mesg                                    #=> "foo"
p sockaddr                                #=> "\002\000\200r\177\000\000\001\000\000\000\000\000\000\000\000"
p Socket.unpack_sockaddr_in(sockaddr)     #=> [32882, "127.0.0.1"]
recvfrom_nonblock(maxlen, flags=0) -> [String, String][permalink][rdoc]

ソケットをノンブロッキングモードに設定した後、 recvfrom(2) を呼び出します。

引数、返り値は Socket#recvfrom と同じです。

recvfrom(2) がエラーになった場合、 EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。

[PARAM] maxlen:
ソケットから受けとるデータの最大値
[PARAM] flags:
フラグ
[EXCEPTION] Errno::EXXX:
recvfrom(2) がエラーを報告した場合に発生します。詳しくは man を参照してください
sysaccept -> Array[permalink][rdoc]

接続したクライアントのファイル記述子とアドレスのペアを返すことを除 けば Socket#accept と同じです。

定数

AF_APPLETALK -> Integer[permalink][rdoc]
PF_APPLETALK -> Integer

Apple talk。 Socket.open の第一引数 domain に使用します。

[SEE_ALSO] socket(2linux), socket(2freebsd), ddp(7linux)

AF_ATM -> Integer[permalink][rdoc]
PF_ATM -> Integer

ATM。 Socket.open の第一引数 domain に使用します。

[SEE_ALSO] socket(2freebsd)

AF_AX25 -> Integer[permalink][rdoc]
PF_AX25 -> Integer

ITU-T X.25 / ISO-8208。 Socket.open の第一引数 domain に使用します。

[SEE_ALSO] socket(2linux)

AF_CCITT -> Integer[permalink][rdoc]
PF_CCITT -> Integer

[TODO]

CCITT プロトコル。 Socket.open の第一引数 domain に使用します。

AF_CHAOS -> Integer[permalink][rdoc]
PF_CHAOS -> Integer

[TODO]

MIT CHAOS プロトコル。 Socket.open の第一引数 domain に使用します。

AF_CNT -> Integer[permalink][rdoc]
PF_CNT -> Integer

[TODO]

Computer Network Technology。 Socket.open の第一引数 domain に使用します。

AF_COIP -> Integer[permalink][rdoc]
PF_COIP -> Integer

[TODO]

connection-oriented IP。 Socket.open の第一引数 domain に使用します。

AF_DATAKIT -> Integer[permalink][rdoc]
PF_DATAKIT -> Integer

[TODO]

datakit protocol。 Socket.open の第一引数 domain に使用します。

AF_DEC -> Integer[permalink][rdoc]
PF_DEC -> Integer

[TODO]

DECnet protocol。 Socket.open の第一引数 domain に使用します。

AF_DLI -> Integer[permalink][rdoc]
PF_DLI -> Integer

[TODO]

DEC Direct data link interface。 Socket.open の第一引数 domain に使用します。

AF_E164 -> Integer[permalink][rdoc]

[TODO]

CCITT E.164 recommendation。 Socket.open の第一引数 domain に使用します。

AF_ECMA -> Integer[permalink][rdoc]
PF_ECMA -> Integer

[TODO]

European computer manufacturers。 Socket.open の第一引数 domain に使用します。

AF_HYLINK -> Integer[permalink][rdoc]
PF_HYLINK -> Integer

[TODO]

NSC Hyperchannel。 Socket.open の第一引数 domain に使用します。

AF_IMPLINK -> Integer[permalink][rdoc]
PF_IMPLINK -> Integer

[TODO]

ARPANET IMP。 Socket.open の第一引数 domain に使用します。

AF_INET -> Integer[permalink][rdoc]
PF_INET -> Integer

IPv4。 Socket.open の第一引数 domain に使用します。

[SEE_ALSO] sys/socket.h(header), socket(2freebsd), ip(7linux)

AF_INET6 -> Integer[permalink][rdoc]
PF_INET6 -> Integer

IPv6。 Socket.open の第一引数 domain に使用します。

[SEE_ALSO] sys/socket.h(header), socket(2freebsd), ipv6(7linux)

AF_IPX -> Integer[permalink][rdoc]
PF_IPX -> Integer

IPX(Novell Internet Packet eXchange protocol)。 Socket.open の第一引数 domain に使用します。

[SEE_ALSO] socket(3linux)

AF_ISDN -> Integer[permalink][rdoc]
PF_ISDN -> Integer

[TODO]

Integrated Services Digital Network。 Socket.open の第一引数 domain に使用します。

AF_ISO -> Integer[permalink][rdoc]
AF_OSI -> Integer
PF_ISO -> Integer
PF_OSI -> Integer

[TODO]

ISO Open Systems Interconnection protocols。 Socket.open の第一引数 domain に使用します。

AF_LAT -> Integer[permalink][rdoc]
PF_LAT -> Integer

[TODO]

Local Area Transport protocol。 Socket.open の第一引数 domain に使用します。

AF_LINK -> Integer[permalink][rdoc]
PF_LINK -> Integer

[TODO]

Link layer interface。 Socket.open の第一引数 domain に使用します。

AF_LOCAL -> Integer[permalink][rdoc]
AF_UNIX -> Integer
PF_LOCAL -> Integer
PF_UNIX -> Integer

Unix domain socket。 Socket.open の第一引数 domain に使用します。

[SEE_ALSO] sys/socket.h(header), unix(7linux)

AF_MAX -> Integer[permalink][rdoc]

対象のプラットフォーム上でのアドレスファミリーの最大の数値。

[SEE_ALSO] Socket::Constants::PF_MAX

AF_NATM -> Integer[permalink][rdoc]
PF_NATM -> Integer

[TODO]

Native ATM access。 Socket.open の第一引数 domain に使用します。

AF_NDRV -> Integer[permalink][rdoc]
PF_NDRV -> Integer

[TODO]

Network driver raw access。 Socket.open の第一引数 domain に使用します。

AF_NETBIOS -> Integer[permalink][rdoc]
PF_NETBIOS -> Integer

[TODO]

NetBIOS。 Socket.open の第一引数 domain に使用します。

AF_NETGRAPH -> Integer[permalink][rdoc]
PF_NETGRAPH -> Integer

Netgraph sockets。 Socket.open の第一引数 domain に使用します。

[SEE_ALSO] socket(2freebsd)

AF_NS -> Integer[permalink][rdoc]
PF_NS -> Integer

[TODO]

XEROX NS protocol。 Socket.open の第一引数 domain に使用します。

AF_PPP -> Integer[permalink][rdoc]
PF_PPP -> Integer

[TODO]

Point-to-Point Protocol。 Socket.open の第一引数 domain に使用します。

AF_PUP -> Integer[permalink][rdoc]
PF_PUP -> Integer

PUP(PARC Universal Packet)。 Socket.open の第一引数 domain に使用します。

[SEE_ALSO] socket(2freebsd)

AF_ROUTE -> Integer[permalink][rdoc]
PF_ROUTE -> Integer

[TODO]

Internal Routing protocol。 Socket.open の第一引数 domain に使用します。

[TODO]

AF_SIP -> Integer[permalink][rdoc]
PF_SIP -> Integer

[TODO]

Simple Internet Protocol。 Socket.open の第一引数 domain に使用します。

AF_SNA -> Integer[permalink][rdoc]
PF_SNA -> Integer

[TODO]

IBM SNA protocol。 Socket.open の第一引数 domain に使用します。

AF_SYSTEM -> Integer[permalink][rdoc]
PF_SYSTEM -> Integer

[TODO]

Socket.open の第一引数 domain に使用します。

AF_UNSPEC -> Integer[permalink][rdoc]

アドレスファミリー不定。

[SEE_ALSO] Socket.open, sys/socket.h(header)

AI_ADDRCONFIG -> Integer[permalink][rdoc]

Accept only if any address is assigned。

Socket.getaddrinfo, Addrinfo.getaddrinfo の引数 flags に渡す 定数です。

[SEE_ALSO] getaddrinfo(3)

AI_ALL -> Integer[permalink][rdoc]

Allow all addresses。

Socket.getaddrinfo, Addrinfo.getaddrinfo の引数 flags に渡す 定数です。

[SEE_ALSO] getaddrinfo(3)

AI_CANONNAME -> Integer[permalink][rdoc]

Fill in the canonical name。

Socket.getaddrinfo, Addrinfo.getaddrinfo の引数 flags に渡す 定数です。

[SEE_ALSO] getaddrinfo(3)

AI_DEFAULT -> Integer[permalink][rdoc]

Default flags for getaddrinfo。

Socket.getaddrinfo, Addrinfo.getaddrinfo の引数 flags に渡す 定数です。

[SEE_ALSO] getipnodebyname(3freebsd)

AI_MASK -> Integer[permalink][rdoc]

[TODO]

AI_NUMERICHOST -> Integer[permalink][rdoc]

Prevent host name resolution。

Socket.getaddrinfo, Addrinfo.getaddrinfo の引数 flags に渡す 定数です。

[SEE_ALSO] getaddrinfo(3)

AI_PASSIVE -> Integer[permalink][rdoc]

Get address to use with bind。

Socket.getaddrinfo, Addrinfo.getaddrinfo の引数 flags に渡す 定数です。

[SEE_ALSO] getaddrinfo(3)

AI_V4MAPPED -> Integer[permalink][rdoc]

Accept IPv4-mapped IPv6 addresses。

Socket.getaddrinfo, Addrinfo.getaddrinfo の引数 flags に渡す 定数です。

[SEE_ALSO] getaddrinfo(3)

AI_V4MAPPED_CFG -> Integer[permalink][rdoc]

Accept IPv4 mapped addresses if the kernel supports it。

Socket.getaddrinfo, Addrinfo.getaddrinfo の引数 flags に渡す 定数です。

[SEE_ALSO] getipnodebyname(3freebsd)

EAI_ADDRFAMILY -> Integer[permalink][rdoc]

Address family for hostname not supported

getaddrinfo(3), getnameinfo(3) などの エラーコードです。 対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは エラーを SocketError に変換するため、この定数は直接は利用しません。

[SEE_ALSO] getaddrinfo(3linux), gai_strerror(3freebsd)

EAI_AGAIN -> Integer[permalink][rdoc]

Temporary failure in name resolution

getaddrinfo(3), getnameinfo(3) などの エラーコードです。 対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは エラーを SocketError に変換するため、この定数は直接は利用しません。

[SEE_ALSO] getaddrinfo(3linux), gai_strerror(3freebsd)

EAI_BADFLAGS -> Integer[permalink][rdoc]

Invalid flags

getaddrinfo(3), getnameinfo(3) などの エラーコードです。 対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは エラーを SocketError に変換するため、この定数は直接は利用しません。

[SEE_ALSO] getaddrinfo(3linux), gai_strerror(3freebsd)

EAI_BADHINTS -> Integer[permalink][rdoc]

Invalid value for hints

getaddrinfo(3), getnameinfo(3) などの エラーコードです。 対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは エラーを SocketError に変換するため、この定数は直接は利用しません。

EAI_FAIL -> Integer[permalink][rdoc]

Non-recoverable failure in name resolution

getaddrinfo(3), getnameinfo(3) などの エラーコードです。 対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは エラーを SocketError に変換するため、この定数は直接は利用しません。

[SEE_ALSO] getaddrinfo(3linux), gai_strerror(3freebsd)

EAI_FAMILY -> Integer[permalink][rdoc]

Address family not supported

getaddrinfo(3), getnameinfo(3) などの エラーコードです。 対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは エラーを SocketError に変換するため、この定数は直接は利用しません。

[SEE_ALSO] getaddrinfo(3linux), gai_strerror(3freebsd)

EAI_MAX -> Integer[permalink][rdoc]

EAI_* 定数の最大値。

EAI_MEMORY -> Integer[permalink][rdoc]

Memory allocation failure

getaddrinfo(3), getnameinfo(3) などの エラーコードです。 対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは エラーを SocketError に変換するため、この定数は直接は利用しません。

[SEE_ALSO] getaddrinfo(3linux), gai_strerror(3freebsd)

EAI_NODATA -> Integer[permalink][rdoc]

No address associated with hostname

getaddrinfo(3), getnameinfo(3) などの エラーコードです。 対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは エラーを SocketError に変換するため、この定数は直接は利用しません。

[SEE_ALSO] getaddrinfo(3linux)

EAI_NONAME -> Integer[permalink][rdoc]

Hostname nor servname, or not known

getaddrinfo(3), getnameinfo(3) などの エラーコードです。 対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは エラーを SocketError に変換するため、この定数は直接は利用しません。

[SEE_ALSO] getaddrinfo(3linux), gai_strerror(3freebsd)

EAI_PROTOCOL -> Integer[permalink][rdoc]

Resolved protocol is unknown

getaddrinfo(3), getnameinfo(3) などの エラーコードです。 対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは エラーを SocketError に変換するため、この定数は直接は利用しません。

[SEE_ALSO] getaddrinfo(3linux), gai_strerror(3freebsd)

EAI_SERVICE -> Integer[permalink][rdoc]

Servname not supported for socket type

getaddrinfo(3), getnameinfo(3) などの エラーコードです。 対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは エラーを SocketError に変換するため、この定数は直接は利用しません。

[SEE_ALSO] getaddrinfo(3linux), gai_strerror(3freebsd)

EAI_SOCKTYPE -> Integer[permalink][rdoc]

Socket type not supported

getaddrinfo(3), getnameinfo(3) などの エラーコードです。 対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは エラーを SocketError に変換するため、この定数は直接は利用しません。

[SEE_ALSO] getaddrinfo(3linux), gai_strerror(3freebsd)

EAI_SYSTEM -> Integer[permalink][rdoc]

System error returned in errno

getaddrinfo(3), getnameinfo(3) などの エラーコードです。 対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは エラーを適当な例外に変換するため、この定数は直接は利用しません。

[SEE_ALSO] getaddrinfo(3linux), gai_strerror(3freebsd)

INADDR_ALLHOSTS_GROUP -> Integer[permalink][rdoc]

Multicast group for all systems on this subset。 IPv4の 244.0.0.1 に対応する整数です。

[SEE_ALSO] http://www.iana.org/assignments/multicast-addresses/multicast-addresses.xml, [RFC5771]

INADDR_ANY -> Integer[permalink][rdoc]

A socket bound to INADDR_ANY receives packets from all interfaces and sends from the default IP address。 IPv4アドレスの 0.0.0.0 に対応する整数です。

[SEE_ALSO] netinet/in.h(header), ip(7linux), ip(4freebsd)

INADDR_BROADCAST -> Integer[permalink][rdoc]

The network broadcast address。 IPv4のブロードキャストアドレス 255.255.255.255 に対応する整数です。

[SEE_ALSO] netinet/in.h(header), ip(7linux), ip(4freebsd)

INADDR_LOOPBACK -> Integer[permalink][rdoc]

The loopback address。 IPv4のループバックアドレス 127.0.0.1 に対応する整数です。

[SEE_ALSO] ip(7linux), ip(4freebsd)

INADDR_MAX_LOCAL_GROUP -> Integer[permalink][rdoc]

The last local network multicast group。 IPv4の 244.0.0.255 に対応する整数です。

[SEE_ALSO] http://www.iana.org/assignments/multicast-addresses/multicast-addresses.xml, [RFC5771]

INADDR_NONE -> Integer[permalink][rdoc]

A bitmask for matching no valid IP address。 エラーを表すアドレス値です。

INADDR_UNSPEC_GROUP -> Integer[permalink][rdoc]

The reserved multicast group。 IPv4の 244.0.0.0 に対応する整数です。

[SEE_ALSO] http://www.iana.org/assignments/multicast-addresses/multicast-addresses.xml, [RFC5771]

IPPORT_RESERVED -> Integer[permalink][rdoc]

利用法が予約されているポート番号の最大値。

IPPORT_USERRESERVED -> Integer[permalink][rdoc]

ユーザが自由に利用して良いポート番号の最小値。

IPPROTO_BIP -> Integer[permalink][rdoc]

[TODO]

BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

IPPROTO_EGP -> Integer[permalink][rdoc]

[TODO]

Exterior Gateway Protocol。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

IPPROTO_EON -> Integer[permalink][rdoc]

[TODO]

ISO cnlp。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

IPPROTO_GGP -> Integer[permalink][rdoc]

[TODO]

Gateway to Gateway Protocol。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

IPPROTO_HELLO -> Integer[permalink][rdoc]

[TODO]

"hello" routing protocol。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

IPPROTO_ICMP -> Integer[permalink][rdoc]

Control message protocol。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

[SEE_ALSO] netinet/in.h(header) icmp(4freebsd), icmp(7linux)

IPPROTO_IDP -> Integer[permalink][rdoc]

[TODO]

XNS IDP。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

IPPROTO_IGMP -> Integer[permalink][rdoc]

[TODO]

Group Management Protocol。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

IPPROTO_IP -> Integer[permalink][rdoc]

Internet protocol。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

[SEE_ALSO] netinet/in.h(header) ip(4freebsd), ip(7linux)

IPPROTO_MAX -> Integer[permalink][rdoc]

IPPROTO 定数の最大値。

IPPROTO_ND -> Integer[permalink][rdoc]

[TODO]

Sun net disk protocol BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

IPPROTO_PUP -> Integer[permalink][rdoc]

[TODO]

PARC Universal Packet protocol。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

IPPROTO_RAW -> Integer[permalink][rdoc]

Raw IP packets protocol。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

[SEE_ALSO] netinet/in.h(header) ip(4freebsd), raw(7linux)

IPPROTO_TCP -> Integer[permalink][rdoc]

Transmission control protocol。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

[SEE_ALSO] netinet/in.h(header) tcp(4freebsd), tcp(7linux)

IPPROTO_TP -> Integer[permalink][rdoc]

[TODO]

ISO transport protocol class 4。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

IPPROTO_UDP -> Integer[permalink][rdoc]

User Datagram Protocol。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

[SEE_ALSO] netinet/in.h(header) udp(4freebsd), udp(7linux)

IPPROTO_XTP -> Integer[permalink][rdoc]

[TODO]

Xpress Transport Protocol。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

また、Socket.open の protocol 引数に渡す利用法もあります。

IP_ADD_MEMBERSHIP -> Integer[permalink][rdoc]

Add a multicast group membership

BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IP, ip(4freebsd), ip(7linux)

IP_DEFAULT_MULTICAST_LOOP -> Integer[permalink][rdoc]

[TODO]

Default multicast loopback

IP_DEFAULT_MULTICAST_TTL -> Integer[permalink][rdoc]

[TODO]

Default multicast TTL

IP_DROP_MEMBERSHIP -> Integer[permalink][rdoc]

Drop a multicast group membership。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IP, ip(4freebsd), ip(7linux)

IP_HDRINCL -> Integer[permalink][rdoc]

Header is included with data。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IP, ip(4freebsd)

IP_MAX_MEMBERSHIPS -> Integer[permalink][rdoc]

Maximum number multicast groups a socket can join。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IP, ip(4freebsd)

IP_MULTICAST_IF -> Integer[permalink][rdoc]

IP multicast interface。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IP, ip(4freebsd), ip(7linux)

IP_MULTICAST_LOOP -> Integer[permalink][rdoc]

IP multicast loopback。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IP, ip(4freebsd), ip(7linux)

IP_MULTICAST_TTL -> Integer[permalink][rdoc]

IP multicast TTL。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IP, ip(4freebsd), ip(7linux)

IP_OPTIONS -> Integer[permalink][rdoc]

IP options to be included in packets。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IP, ip(4freebsd), ip(7linux)

IP_RECVDSTADDR -> Integer[permalink][rdoc]

Receive IP destination address with datagram。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IP, ip(4freebsd)

IP_RECVOPTS -> Integer[permalink][rdoc]

Receive IP destination address with datagram。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IP, ip(7linux)

IP_RECVRETOPTS -> Integer[permalink][rdoc]

[TODO]

Receive all IP options for response

IP_RETOPTS -> Integer[permalink][rdoc]

IP options to be included in datagrams。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IP, ip(7linux)

IP_TOS -> Integer[permalink][rdoc]

IP type-of-service。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IP, ip(4freebsd), ip(7linux)

IP_TTL -> Integer[permalink][rdoc]

IP time-to-live。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IP, ip(4freebsd), ip(7linux)

MSG_COMPAT -> Integer[permalink][rdoc]

[TODO]

End of record

MSG_CTRUNC -> Integer[permalink][rdoc]

Control data lost before delivery。

BasicSocket#send, BasicSocket#sendmsg, BasicSocket#recv, BasicSocket#recvmsg の flags 引数に用います。

[SEE_ALSO] sys/socket.h(header), send(2linux), recv(2linux), send(2freebsd), recv(2freebsd),

MSG_DONTROUTE -> Integer[permalink][rdoc]

Send without using the routing tables。

BasicSocket#send, BasicSocket#sendmsg の flags 引数に用います。

[SEE_ALSO] sys/socket.h(header), send(2linux) send(2freebsd)

MSG_DONTWAIT -> Integer[permalink][rdoc]

This message should be non-blocking。

BasicSocket#send, BasicSocket#sendmsg, BasicSocket#recv, BasicSocket#recvmsg の flags 引数に用います。

[SEE_ALSO] send(2linux), recv(2linux), recv(2freebsd),

MSG_EOF -> Integer[permalink][rdoc]

Data completes connection。

BasicSocket#send, BasicSocket#sendmsg, BasicSocket#recv, BasicSocket#recvmsg の flags 引数に用います。

[SEE_ALSO] send(2freebsd)

MSG_EOR -> Integer[permalink][rdoc]

Data completes record。

BasicSocket#send, BasicSocket#sendmsg, BasicSocket#recv, BasicSocket#recvmsg の flags 引数に用います。

[SEE_ALSO] sys/socket.h(header), send(2), sendto(2), sendmsg(2), recv(2), recvfrom(2), recvmsg(2), send(2linux), recv(2linux), send(2freebsd), recv(2freebsd),

MSG_FLUSH -> Integer[permalink][rdoc]

[TODO]

Start of a hold sequence. Dumps to so_temp

MSG_HAVEMORE -> Integer[permalink][rdoc]

[TODO]

Data ready to be read

MSG_HOLD -> Integer[permalink][rdoc]

[TODO]

Hold fragment in so_temp

MSG_OOB -> Integer[permalink][rdoc]

Process out-of-band data。

BasicSocket#send, BasicSocket#sendmsg, BasicSocket#recv, BasicSocket#recvmsg の flags 引数に用います。

[SEE_ALSO] sys/socket.h(header), send(2), sendto(2), sendmsg(2), recv(2), recvfrom(2), recvmsg(2), send(2linux), recv(2linux), send(2freebsd), recv(2freebsd),

MSG_PEEK -> Integer[permalink][rdoc]

Peek at incoming message。

BasicSocket#send, BasicSocket#sendmsg, BasicSocket#recv, BasicSocket#recvmsg の flags 引数に用います。

[SEE_ALSO] sys/socket.h(header), send(2), sendto(2), sendmsg(2), recv(2), recvfrom(2), recvmsg(2), send(2linux), recv(2linux), send(2freebsd), recv(2freebsd),

MSG_RCVMORE -> Integer[permalink][rdoc]

[TODO]

Data remains in the current packet

MSG_SEND -> Integer[permalink][rdoc]

[TODO]

Send the packet in so_temp

MSG_TRUNC -> Integer[permalink][rdoc]

Data discarded before delivery。

BasicSocket#send, BasicSocket#sendmsg, BasicSocket#recv, BasicSocket#recvmsg の flags 引数に用います。

[SEE_ALSO] sys/socket.h(header), send(2linux), recv(2linux), send(2freebsd), recv(2freebsd),

MSG_WAITALL -> Integer[permalink][rdoc]

Wait for full request or error

BasicSocket#recv, BasicSocket#recvmsg の flags 引数に用います。

[SEE_ALSO] sys/socket.h(header), recv(2), recvfrom(2), recvmsg(2), recv(2linux), recv(2freebsd),

NI_DGRAM -> Integer[permalink][rdoc]

The service specified is a datagram service (looks up UDP ports)。

Socket.getnameinfo, Addrinfo#getnameinfo の引数 flags に渡す 定数です。

Socket.getnameinfo([ Socket::AF_INET, 514, "127.0.0.1"], Socket::NI_DGRAM)
# => ["localhost", "syslog"]
Socket.getnameinfo([ Socket::AF_INET, 514, "127.0.0.1"])
# => ["localhost", "shell"]

[SEE_ALSO] getnameinfo(3)

NI_MAXHOST -> Integer[permalink][rdoc]

getnameinfo(3) で用いるホスト名文字列の最大長さ。

[SEE_ALSO] getnameinfo(3linux)

NI_MAXSERV -> Integer[permalink][rdoc]

getnameinfo(3) で用いるサービス名文字列の最大長さ。

[SEE_ALSO] getnameinfo(3linux)

NI_NAMEREQD -> Integer[permalink][rdoc]

A name is required。名前解決できなかった場合にエラーを返すことを意味します。

Socket.getnameinfo, Addrinfo#getnameinfo の引数 flags に渡す 定数です。

# ここでは 192.0.2.18 は名前解決できないアドレス
Addrinfo.tcp("192.0.2.18", 514).getnameinfo()
# =>["192.0.2.18", "shell"]
Addrinfo.tcp("192.0.2.18", 514).getnameinfo(Socket::NI_NAMEREQD)
# SocketError が発生する

[SEE_ALSO] getnameinfo(3)

NI_NOFQDN -> Integer[permalink][rdoc]

An FQDN is not required for local hosts, return only the local part.

Socket.getnameinfo, Addrinfo#getnameinfo の引数 flags に渡す 定数です。

[SEE_ALSO] getnameinfo(3)

NI_NUMERICHOST -> Integer[permalink][rdoc]

Return a numeric address.

Socket.getnameinfo, Addrinfo#getnameinfo の引数 flags に渡す 定数です。

[SEE_ALSO] getnameinfo(3)

NI_NUMERICSERV -> Integer[permalink][rdoc]

Return the service name as a digit string

Socket.getnameinfo, Addrinfo#getnameinfo の引数 flags に渡す 定数です。

[SEE_ALSO] getnameinfo(3)

PF_KEY -> Integer[permalink][rdoc]

Internal key-management function。 Socket.open の第一引数 domain に使用します。

[SEE_ALSO] socket(2freebsd)

PF_MAX -> Integer[permalink][rdoc]

プロトコルファミリーの最大数。

[SEE_ALSO] Socket::Constants::AF_MAX

PF_PIP -> Integer[permalink][rdoc]

Help Identify PIP packets。 Socket.open の第一引数 domain に使用します。

[SEE_ALSO] socket(2freebsd)

PF_RTIP -> Integer[permalink][rdoc]

Help Identify RTIP packets。 Socket.open の第一引数 domain に使用します。

[SEE_ALSO] socket(2freebsd)

PF_UNSPEC -> Integer[permalink][rdoc]

プロトコルファミリー不定。

[SEE_ALSO] Socket::Constants::AF_UNSPEC, Socket.open

PF_XTP -> Integer[permalink][rdoc]

[TODO]

eXpress Transfer Protocol。

SHUT_RD -> Integer[permalink][rdoc]

BasicSocket#shutdown の how 引数に使用します。

SHUT_RDWR -> Integer[permalink][rdoc]

BasicSocket#shutdown の how 引数に使用します。

SHUT_WR -> Integer[permalink][rdoc]

BasicSocket#shutdown の how 引数に使用します。

SOCK_DGRAM -> Integer[permalink][rdoc]

データグラム通信。 Socket.open の第二引数 type に使用します。

[SEE_ALSO] socket(2), Socket.open

SOCK_PACKET -> Integer[permalink][rdoc]

デバイスレベルインターフェース。Obsoleteであり使うべきではない。 Socket.open の第二引数 type に使用します。

[SEE_ALSO] packet(7linux), Socket.open

SOCK_RAW -> Integer[permalink][rdoc]

RAW ソケット。 Socket.open の第二引数 type に使用します。

[SEE_ALSO] sys/socket.h(header), socket(2linux), raw(7linux), Socket.open

SOCK_RDM -> Integer[permalink][rdoc]

信頼性のあるデータグラム通信。 Socket.open の第二引数 type に使用します。

[SEE_ALSO] socket(2linux), Socket.open

SOCK_SEQPACKET -> Integer[permalink][rdoc]

固定最大長を持つストリーム通信。 Socket.open の第二引数 type に使用します。

[SEE_ALSO] Socket.open, socket(2), socket(2linux), socket(2freebsd)

SOCK_STREAM -> Integer[permalink][rdoc]

ストリーム通信。 Socket.open の第二引数 type に使用します。

[SEE_ALSO] Socket.open, socket(2), socket(2linux), socket(2freebsd)

SOL_ATALK -> Integer[permalink][rdoc]

[TODO]

AppleTalk socket options。 BasicSocket#getsockopt, BasicSocket#setsockopt の第一引数(level)に使用します。

SOL_AX25 -> Integer[permalink][rdoc]

[TODO]

AX.25 socket options。 BasicSocket#getsockopt, BasicSocket#setsockopt の第一引数(level)に使用します。

SOL_IP -> Integer[permalink][rdoc]

IP socket options。 BasicSocket#getsockopt, BasicSocket#setsockopt の第一引数(level)に使用します。

SOL_IP はポータブルではありません。 IPPROTO_IP のほうがよりポータブルです。

[SEE_ALSO] getsockopt(2), setsockopt(2), ip(7linux) Socket::Constants::IPPROTO_IP

SOL_IPX -> Integer[permalink][rdoc]

[TODO]

IPX socket options。 BasicSocket#getsockopt, BasicSocket#setsockopt の第一引数(level)に使用します。

SOL_SOCKET -> Integer[permalink][rdoc]

Socket level options。 BasicSocket#getsockopt, BasicSocket#setsockopt の第一引数(level)に使用します。

[SEE_ALSO] getsockopt(2), setsockopt(2), sys/socket.h(header), socket(7linux) getsockopt(2freebsd)

SOL_TCP -> Integer[permalink][rdoc]

TCP socket options。 BasicSocket#getsockopt, BasicSocket#setsockopt の第一引数(level)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_TCP

SOL_UDP -> Integer[permalink][rdoc]

UDP socket options。 BasicSocket#getsockopt, BasicSocket#setsockopt の第一引数(level)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_UDP

SOPRI_BACKGROUND -> Integer[permalink][rdoc]

[TODO]

Background socket priority

SOPRI_INTERACTIVE -> Integer[permalink][rdoc]

[TODO]

Interactive socket priority

SOPRI_NORMAL -> Integer[permalink][rdoc]

Normal socket priority

[TODO]

SO_ACCEPTCONN -> Integer[permalink][rdoc]

Socket has had listen() called on it。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux), Socket::Constants::SOL_SOCKET

SO_ACCEPTFILTER -> Integer[permalink][rdoc]

set accept filter on listening socket。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] getsockopt(2freebsd), Socket::Constants::SOL_SOCKET

SO_ATTACH_FILTER -> Integer[permalink][rdoc]

Attach socket filter。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] socket(7linux), http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=Documentation/networking/filter.txt;hb=HEAD, Socket::Constants::SOL_SOCKET

SO_BINDTODEVICE -> Integer[permalink][rdoc]

Bind this socket to a particular device。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] socket(7linux), Socket::Constants::SOL_SOCKET

SO_BROADCAST -> Integer[permalink][rdoc]

Permit sending of broadcast messages。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux), Socket::Constants::SOL_SOCKET

SO_DEBUG -> Integer[permalink][rdoc]

Debug info recording。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux), Socket::Constants::SOL_SOCKET

SO_DETACH_FILTER -> Integer[permalink][rdoc]

Detach socket filter。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] socket(7linux), http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=Documentation/networking/filter.txt;hb=HEAD, Socket::Constants::SOL_SOCKET

SO_DONTROUTE -> Integer[permalink][rdoc]

Send without using the routing tables。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux), Socket::Constants::SOL_SOCKET

SO_DONTTRUNC -> Integer[permalink][rdoc]

[TODO]

Retain unread data

SO_ERROR -> Integer[permalink][rdoc]

Get socket error status。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux), Socket::Constants::SOL_SOCKET

SO_KEEPALIVE -> Integer[permalink][rdoc]

Keep connections alive。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux), Socket::Constants::SOL_SOCKET

SO_LINGER -> Integer[permalink][rdoc]

Linger on close if data is present。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux),Socket::Constants::SOL_SOCKET

SO_NKE -> Integer[permalink][rdoc]

[TODO]

socket-level Network Kernel Extension。

SO_NOSIGPIPE -> Integer[permalink][rdoc]

Don't SIGPIPE on EPIPE。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] getsockopt(2freebsd), Socket::Constants::SOL_SOCKET

SO_NO_CHECK -> Integer[permalink][rdoc]

[TODO]

Disable checksums。

SO_NREAD -> Integer[permalink][rdoc]

[TODO]

Get first packet byte count。

SO_OOBINLINE -> Integer[permalink][rdoc]

Leave received out-of-band data in-line。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux), Socket::Constants::SOL_SOCKET

SO_PASSCRED -> Integer[permalink][rdoc]

Receive SCM_CREDENTIALS messages。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] socket(7linux), unix(7linux), Socket::Constants::SOL_SOCKET

SO_PEERCRED -> Integer[permalink][rdoc]

The credentials of the foreign process connected to this socket。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] socket(7linux), unix(7linux), socketpair(2linux), Socket::Constants::SOL_SOCKET

SO_PEERNAME -> Integer[permalink][rdoc]

[TODO]

Name of the connecting user。

SO_PRIORITY -> Integer[permalink][rdoc]

The protocol-defined priority for all packets on this socket。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] socket(7linux), ip(7linux)

SO_RCVBUF -> Integer[permalink][rdoc]

Receive buffer size。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux), Socket::Constants::SOL_SOCKET

SO_RCVLOWAT -> Integer[permalink][rdoc]

Receive low-water mark。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux), Socket::Constants::SOL_SOCKET

SO_RCVTIMEO -> Integer[permalink][rdoc]

Receive timeout。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux)

SO_REUSEADDR -> Integer[permalink][rdoc]

Allow local address reuse。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux), bind(2), Socket::Constants::SOL_SOCKET

SO_REUSEPORT -> Integer[permalink][rdoc]

Allow local address and port reuse。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] getsockopt(2freebsd), Socket::Constants::SOL_SOCKET

SO_SECURITY_AUTHENTICATION -> Integer[permalink][rdoc]

[TODO]

SO_SECURITY_ENCRYPTION_NETWORK -> Integer[permalink][rdoc]

[TODO]

SO_SECURITY_ENCRYPTION_TRANSPORT -> Integer[permalink][rdoc]

[TODO]

SO_SNDBUF -> Integer[permalink][rdoc]

Send buffer size。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux), Socket::Constants::SOL_SOCKET

SO_SNDLOWAT -> Integer[permalink][rdoc]

Receive low-water mark。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux), Socket::Constants::SOL_SOCKET

SO_SNDTIMEO -> Integer[permalink][rdoc]

Send timeout。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux), Socket::Constants::SOL_SOCKET

SO_TIMESTAMP -> Integer[permalink][rdoc]

Receive timestamp with datagrams (timeval)。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] getsockopt(2freebsd), socket(7linux), Socket::Constants::SOL_SOCKET Socket::AncillaryData#timestamp

SO_TYPE -> Integer[permalink][rdoc]

Get the socket type。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] sys/socket.h(header), getsockopt(2freebsd), socket(7linux), Socket::Constants::SOL_SOCKET

SO_USELOOPBACK -> Integer[permalink][rdoc]

[TODO]

Bypass hardware when possible。

SO_WANTMORE -> Integer[permalink][rdoc]

[TODO]

Give a hint when more data is ready。

SO_WANTOOBFLAG -> Integer[permalink][rdoc]

[TODO]

OOB data is wanted in MSG_FLAG on receive。

TCP_MAXSEG -> Integer[permalink][rdoc]

Set maximum segment size。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] tcp(4freebsd), tcp(7linux)

TCP_NODELAY -> Integer[permalink][rdoc]

Don't delay sending to coalesce packets。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] tcp(4freebsd), tcp(7linux), netinet/tcp.h(header)