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

class Socket

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

要約

汎用ソケットクラス。

システムコールレベルから高水準の機能までを提供します。

ソケットオブジェクトを生成する汎用的な方法として Socket.new がありますが、以下のようなより便利な メソッドがあります。

また、クライアントソケットは Addrinfo#connect で、 サーバソケットを Addrinfo#bindAddrinfo#listen で 作ることもできます。

目次

特異メソッド
accept_loop getaddrinfo gethostbyaddr gethostbyname gethostname getnameinfo getservbyname getservbyport ip_address_list new open pack_sockaddr_in sockaddr_in pack_sockaddr_un sockaddr_un pair socketpair tcp tcp_server_loop tcp_server_sockets udp_server_loop udp_server_loop_on udp_server_recv udp_server_sockets unix unix_server_loop unix_server_socket unpack_sockaddr_in unpack_sockaddr_un
インスタンスメソッド
accept accept_nonblock bind connect connect_nonblock ipv6only! 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_PACKET PF_PACKET 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_NUMERICSERV 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_OVERFLOW EAI_PROTOCOL EAI_SERVICE EAI_SOCKTYPE EAI_SYSTEM IFNAMSIZ IF_NAMESIZE INADDR_ALLHOSTS_GROUP INADDR_ANY INADDR_BROADCAST INADDR_LOOPBACK INADDR_MAX_LOCAL_GROUP INADDR_NONE INADDR_UNSPEC_GROUP INET6_ADDRSTRLEN INET_ADDRSTRLEN IPPORT_RESERVED IPPORT_USERRESERVED IPPROTO_AH IPPROTO_BIP IPPROTO_DSTOPTS IPPROTO_EGP IPPROTO_EON IPPROTO_ESP IPPROTO_FRAGMENT IPPROTO_GGP IPPROTO_HELLO IPPROTO_HOPOPTS IPPROTO_ICMP IPPROTO_ICMPV6 IPPROTO_IDP IPPROTO_IGMP IPPROTO_IP IPPROTO_IPV6 IPPROTO_MAX IPPROTO_ND IPPROTO_NONE IPPROTO_PUP IPPROTO_RAW IPPROTO_ROUTING IPPROTO_TCP IPPROTO_TP IPPROTO_UDP IPPROTO_XTP IPV6_CHECKSUM IPV6_DONTFRAG IPV6_DSTOPTS IPV6_HOPLIMIT IPV6_HOPOPTS IPV6_JOIN_GROUP IPV6_LEAVE_GROUP IPV6_MULTICAST_HOPS IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP IPV6_NEXTHOP IPV6_PATHMTU IPV6_PKTINFO IPV6_RECVDSTOPTS IPV6_RECVHOPLIMIT IPV6_RECVHOPOPTS IPV6_RECVPATHMTU IPV6_RECVPKTINFO IPV6_RECVRTHDR IPV6_RECVTCLASS IPV6_RTHDR IPV6_RTHDRDSTOPTS IPV6_RTHDR_TYPE_0 IPV6_TCLASS IPV6_UNICAST_HOPS IPV6_USE_MIN_MTU IPV6_V6ONLY IPX_TYPE IP_ADD_MEMBERSHIP IP_ADD_SOURCE_MEMBERSHIP IP_BLOCK_SOURCE IP_DEFAULT_MULTICAST_LOOP IP_DEFAULT_MULTICAST_TTL IP_DONTFRAG IP_DROP_MEMBERSHIP IP_DROP_SOURCE_MEMBERSHIP IP_FREEBIND IP_HDRINCL IP_IPSEC_POLICY IP_MAX_MEMBERSHIPS IP_MINTTL IP_MSFILTER IP_MTU IP_MTU_DISCOVER IP_MULTICAST_IF IP_MULTICAST_LOOP IP_MULTICAST_TTL IP_ONESBCAST IP_OPTIONS IP_PASSSEC IP_PKTINFO IP_PKTOPTIONS IP_PMTUDISC_DO IP_PMTUDISC_DONT IP_PMTUDISC_WANT IP_PORTRANGE IP_RECVDSTADDR IP_RECVERR IP_RECVIF IP_RECVOPTS IP_RECVRETOPTS IP_RECVSLLA IP_RECVTOS IP_RECVTTL IP_RETOPTS IP_ROUTER_ALERT IP_SENDSRCADDR IP_TOS IP_TTL IP_UNBLOCK_SOURCE IP_XFRM_POLICY LOCAL_CONNWAIT LOCAL_CREDS LOCAL_PEERCRED MCAST_BLOCK_SOURCE MCAST_EXCLUDE MCAST_INCLUDE MCAST_JOIN_GROUP MCAST_JOIN_SOURCE_GROUP MCAST_LEAVE_GROUP MCAST_LEAVE_SOURCE_GROUP MCAST_MSFILTER MCAST_UNBLOCK_SOURCE MSG_COMPAT MSG_CONFIRM MSG_CTRUNC MSG_DONTROUTE MSG_DONTWAIT MSG_EOF MSG_EOR MSG_ERRQUEUE MSG_FIN MSG_FLUSH MSG_HAVEMORE MSG_HOLD MSG_MORE MSG_NOSIGNAL MSG_OOB MSG_PEEK MSG_PROXY MSG_RCVMORE MSG_RST MSG_SEND MSG_SYN 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 SCM_BINTIME SCM_CREDENTIALS SCM_CREDS SCM_RIGHTS SCM_TIMESTAMP SCM_TIMESTAMPNS SCM_UCRED 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 SOMAXCONN SOPRI_BACKGROUND SOPRI_INTERACTIVE SOPRI_NORMAL SO_ACCEPTCONN SO_ACCEPTFILTER SO_ALLZONES SO_ATTACH_FILTER SO_BINDTODEVICE SO_BINTIME SO_BROADCAST SO_DEBUG SO_DETACH_FILTER SO_DONTROUTE SO_DONTTRUNC SO_ERROR SO_KEEPALIVE SO_LINGER SO_MAC_EXEMPT 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_RECVUCRED SO_REUSEADDR SO_REUSEPORT SO_SECURITY_AUTHENTICATION SO_SECURITY_ENCRYPTION_NETWORK SO_SECURITY_ENCRYPTION_TRANSPORT SO_SNDBUF SO_SNDLOWAT SO_SNDTIMEO SO_TIMESTAMP SO_TIMESTAMPNS SO_TYPE SO_USELOOPBACK SO_WANTMORE SO_WANTOOBFLAG TCP_CORK TCP_DEFER_ACCEPT TCP_INFO TCP_KEEPCNT TCP_KEEPIDLE TCP_KEEPINTVL TCP_LINGER2 TCP_MAXSEG TCP_MD5SIG TCP_NODELAY TCP_NOOPT TCP_NOPUSH TCP_QUICKACK TCP_SYNCNT TCP_WINDOW_CLAMP UDP_CORK

特異メソッド

accept_loop(sockets) {|sock, client_addrinfo| ...} -> ()[permalink][rdoc]

sockets でサーバソケットを受け取り、接続を待ち受け、 クライアントとの接続が確立するたびにブロックにその接続 ソケットを渡し呼び出します。

ブロックの引数はクライアントと接続したソケットオブジェクトと Addrinfo オブジェクトです。

Socket.tcp_server_loop と同様、ブロックは 逐次的に呼び出されます。つまりブロックか終了するまで 次の接続は accept されません。 並列に通信したい場合は スレッドのような並列実行機構を使う必要があります。

[PARAM] sockets:
待ち受けたいサーバソケットの配列

[SEE_ALSO] Socket.tcp_server_loop, Socket.unix_server_loop,

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)がエラーを返したときに発生する例外です

[SEE_ALSO] Addrinfo.getaddrinfo

アドレス情報について

アドレス情報とは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) がエラーを起こした場合に生じる例外

[SEE_ALSO] Addrinfo#getnameinfo

引数 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]
ポート番号を整数で返します。
getservbyport(port, protocol_name="tcp") -> String[permalink][rdoc]

ポート番号に対応するサービスの正式名を返します。

[PARAM] port:
ポート番号
[PARAM] protocol_name:
"tcp" や "udp" などのプロトコル名
[RETURN]
サービスの正式名
Socket.getservbyport(80)         #=> "www"
Socket.getservbyport(514, "tcp") #=> "shell"
Socket.getservbyport(514, "udp") #=> "syslog"
ip_address_list -> [Addrinfo][permalink][rdoc]

ローカルの IP アドレスを配列で返します。

open(domain, type, protocol=0) -> Socket[permalink][rdoc]
new(domain, type, protocol=0) -> 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=0) -> Array[permalink][rdoc]
socketpair(domain, type, protocol=0) -> Array

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

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

[SEE_ALSO] Socket.open

tcp(host, port, local_host=nil, local_port=nil) -> Socket[permalink][rdoc]
tcp(host, port, local_host=nil, local_port=nil) {|socket| ... } -> object

TCP/IP で host:port に接続するソケットオブジェクトを作成します。

local_host や local_port を指定した場合、ソケットをそこにバインドします。

ブロックを渡すと、生成したソケットをそのブロックに渡し呼び出します。 ブロック終了時にソケットオブジェクトを閉じます。

[PARAM] host:
接続先のホスト名
[PARAM] port:
接続先のポート番号
[PARAM] local_host:
接続元のホスト名
[PARAM] local_port:
接続元のポート番号
[RETURN]
ブロック付きで呼ばれた場合はブロックが返した値です。 ブロックなしで呼ばれた場合はソケットオブジェクトを返します。
Socket.tcp("www.ruby-lang.org", 80) {|sock|
  sock.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n"
  sock.close_write
  puts sock.read
}
tcp_server_loop(port) {|sock,addr| ...} -> ()[permalink][rdoc]
tcp_server_loop(host, port) {|sock,addr| ...} -> ()

TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。

ブロックには新しい接続を表すソケットオブジェクトと、 クライアントアドレスを表す Addrinfo オブジェクトが渡されます。

ブロックの実行が終わってもソケットは close されません。 アプリケーション側が明示的に close する必要があります。

このメソッドはブロックを逐次的に呼び出します。 つまりブロックからリターンするまで次のコネクションを受け入れません。 そのため、同時に複数のクライアントと通信したい場合は スレッドのような並列機構を使う必要があります。

サーバのソケットアドレスを決めるために Addrinfo.getaddrinfo が用いられることに注意してください。 Addrinfo.getaddrinfo は複数のアドレスを返す(IPv4 と IPv6 など) 場合があり、その場合その全てが用いられます。つまり IPv4 と IPv6 の 両方を待ち受けます。getaddrinfo が 0 個のアドレスを返す場合はエラー になります。1つ以上を返した場合にそれが用いられます。

# 逐次的な echo サーバ
# 一度に一つのクライアントした取り扱えない
Socket.tcp_server_loop(16807) {|sock, client_addrinfo|
  begin
    IO.copy_stream(sock, sock)
  ensure
    sock.close
  end
}

# スレッドを使った echo サーバ
# 同時に複数のクライアントを取り扱える
# 以下の例だと接続制限がない(つまり接続過剰になりえる)ことに注意
Socket.tcp_server_loop(16807) {|sock, client_addrinfo|
  Thread.new {
    begin
      IO.copy_stream(sock, sock)
    ensure
      sock.close
    end
  }
}

内部的には Socket.tcp_server_sockets で 生成したソケットを Socket.accept_loop で処理しています。

[PARAM] host:
割り当てるホスト名
[PARAM] port:
割り当てるポート番号

[SEE_ALSO] Socket.tcp_server_sockets, Socket.accept_loop

tcp_server_sockets(port) -> [Socket][permalink][rdoc]
tcp_server_sockets(host, port) -> [Socket]
tcp_server_sockets(port) {|sockets| ...} -> object
tcp_server_sockets(host, port) {|sockets| ...} -> object

TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。

ブロックなしの場合は、ソケットオブジェクトの配列を返します。

ブロック付きの場合は、ソケットオブジェクトをそのブロックに 渡して呼び出します。ブロック終了時にそれらのソケットを閉じます。 返り値はブロックの評価値となります。

port が 0 の場合は、実際のポート番号は動的に選ばれます。 ただし返り値のソケットはすべて同じ番号を持ちます。

# tcp_server_sockets returns は2つのソケットを返す
sockets = Socket.tcp_server_sockets(1296)
p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]

# それぞれは IPv4 と IPv6 のソケット
sockets.each {|s| p s.local_address }
#=> #<Addrinfo: [::]:1296 TCP>
#   #<Addrinfo: 0.0.0.0:1296 TCP>

# ポート番号を動的に選んでも IPv6 と IPv4 で同じポート番号を持つ
sockets = Socket.tcp_server_sockets(0)
sockets.each {|s| p s.local_address }
#=> #<Addrinfo: [::]:53114 TCP>
#   #<Addrinfo: 0.0.0.0:53114 TCP>

# ブロックにソケットの配列が渡される
Socket.tcp_server_sockets(0) {|sockets|
  p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]
}
[PARAM] host:
割り当てるホスト名
[PARAM] port:
割り当てるポート番号

[SEE_ALSO] Socket.tcp_server_loop

udp_server_loop(port) {|msg, msg_src| ... } -> ()[permalink][rdoc]
udp_server_loop(host, port) {|msg, msg_src| ... } -> ()

UDP のサーバを起動して、メッセージが来るごとに ブロックを呼び出します。

ブロックに渡される引数は msg と msg_src の 2 つで、 msg は受け取ったメッセージ文字列で、 msg_src は 通信相手の Socket::UDPSource オブジェクトです。

[PARAM] host:
割り当てるホスト名
[PARAM] port:
割り当てるポート番号

[SEE_ALSO] Socket.udp_server_sockets, Socket.udp_server_loop_on

udp_server_loop_on(sockets) {|msg, msg_src| ... } -> ()[permalink][rdoc]

sockets (UDP のソケット)に対し、通信を待ち受けます。

Socket.udp_server_sockets の返り値がこれの引数に適切です。

ソケットからメッセージを受け取るたびにブロックを呼び出します。 ブロックに渡される引数は msg と msg_src の 2 つで、 msg は受け取ったメッセージ文字列で、 msg_src は 通信相手の Socket::UDPSource オブジェクトです。

無限ループ構造になっています。

[PARAM] sockets:
通信を待ち受けるソケットの配列

[SEE_ALSO] Socket.udp_server_recv, Socket.udp_server_loop

udp_server_recv(sockets) {|msg, msg_src| ... } -> ()[permalink][rdoc]

socketsで与えられた各 UDP ソケットからデータを読み取ります。

各ソケットからメッセージを読み取るごとにブロックを呼び出します。 ブロックに渡される引数は msg と msg_src の 2 つで、 msg は受け取ったメッセージ文字列で、 msg_src は 通信相手の Socket::UDPSource オブジェクトです。

Socket.udp_server_loop はこのメソッドの用いて以下のようにして 実装できます。

udp_server_sockets(host, port) {|sockets|
  loop {
    readable, _, _ = IO.select(sockets)
    udp_server_recv(readable) {|msg, msg_src| ... }
  }
}
[PARAM] sockets:
読み込むソケットの配列
udp_server_sockets(port) -> [Sockets][permalink][rdoc]
udp_server_sockets(host, port) -> [Sockets]
udp_server_sockets(port) {|sockets| ... } -> object
udp_server_sockets(host, port) {|sockets| ... } -> object

UDP で host:port を待ち受けるサーバ側のソケットを作成します。

ブロックなしの場合は、ソケットオブジェクトの配列を返します。

ブロック付きの場合は、ソケットオブジェクトをそのブロックに 渡して呼び出します。ブロック終了時にそれらのソケットを閉じます。

port が 0 の場合は、実際のポート番号は動的に選ばれます。 ただし返り値のソケットはすべて同じ番号を持ちます。

# UDP/IP echo server
Socket.udp_server_sockets(0) {|sockets|
  p sockets.first.local_address.ip_port     #=> 32963
  Socket.udp_server_loop_on(sockets) {|msg, msg_src|
    msg_src.reply msg
  }
}
[PARAM] host:
割り当てるホスト名
[PARAM] port:
割り当てるポート番号
unix(path) -> Socket[permalink][rdoc]
unix(path) {|sock| ... } -> object

Unix クライアントソケットを生成します。

ブロックが省略されたときは、生成されたソケットが返されます。

ブロックが渡されたときは、生成されたソケットを 引数としてブロックを呼び出します。メソッドの返り値は ブロックの評価値となります。また、ブロックの終了後に ソケットを IO#close します。

# /tmp/sock と通信する
Socket.unix("/tmp/sock") {|sock|
  t = Thread.new { IO.copy_stream(sock, STDOUT) }
  IO.copy_stream(STDIN, sock)
  t.join
}
[PARAM] path:
接続対象のパス(文字列)
unix_server_loop(path) {|socket, client_addrinfo| ... } -> ()[permalink][rdoc]

Unix サーバソケットを生成し、 新しい接続を受け入れるごとにブロックを呼び出します。

ブロックには新しい接続を表すソケットオブジェクトと、 クライアントアドレスを表す Addrinfo オブジェクトが渡されます。

ブロックの実行が終わってもソケットは close されません。 アプリケーション側が明示的に close する必要があります。

path という名前のファイルが既に存在するときは、 そのファイルのオーナである場合は先にそのファイルを削除してしまいます。 これは path が悪意あるユーザによって変更されない場合に限りは安全です。 つまり、 /tmp/malicious-users-directory/socket という名前のパスは 使うべきではありません。 /tmp にスティッキービットが立っている場合、/tmp/socket や /tmp/your-private-directory/socket というパス名は安全と考えて良いでしょう。

[PARAM] path:
接続を待ち受けるパス(文字列)
unix_server_socket(path) -> Socket[permalink][rdoc]
unix_server_socket(path) {|sock| ... } -> object

Unix サーバソケットを生成します。

ブロックが省略されたときは、生成されたソケットが返されます。

ブロックが渡されたときは、生成されたソケットを 引数としてブロックを呼び出します。メソッドの返り値は ブロックの評価値となります。また、ブロックの終了後に ソケットを IO#close します。

socket = Socket.unix_server_socket("/tmp/s")
p socket                  #=> #<Socket:fd 3>
p socket.local_address    #=> #<Addrinfo: /tmp/s SOCK_STREAM>

Socket.unix_server_socket("/tmp/sock") {|s|
  p s                     #=> #<Socket:fd 3>
  p s.local_address       #=> # #<Addrinfo: /tmp/sock SOCK_STREAM>
}
[PARAM] path:
接続を待ち受けるパス(文字列)
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 した文字列もしくはAddrinfoオブジェクトを指定します。
[RETURN]
0 を返します。
connect(server_sockaddr) -> 0[permalink][rdoc]

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

server_sockaddr は、 socket/ソケットアドレス構造体を pack した文字列 もしくは Addrinfo オブジェクト です。

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 と同じです。

connect が EINPROGRESS エラーを報告した場合、その例外(Errno::EINPROGRESS) には IO::WaitWritableObject#extend されます。 これを connect_nonblock をリトライするために使うことができます。

# Pull down Google's web page
require 'socket'
include Socket::Constants
socket = Socket.new(AF_INET, SOCK_STREAM, 0)
sockaddr = Socket.sockaddr_in(80, 'www.google.com')
begin # emulate blocking connect
  socket.connect_nonblock(sockaddr)
rescue IO::WaitWritable
  IO.select(nil, [socket]) # wait 3-way handshake completion
  begin
    socket.connect_nonblock(sockaddr) # check connection failure
  rescue Errno::EISCONN
  end
end
socket.write("GET / HTTP/1.0\r\n\r\n")
results = socket.read
[PARAM] server_sockaddr:
接続先アドレス
[EXCEPTION] Errno::EXXX:
connect(2) がエラーを報告した場合に発生します。詳しくは man を参照してください。
ipv6only! -> ()[permalink][rdoc]

ソケットの IPV6_V6ONLY オプションを有効にします。

IPV6_V6ONLY オプションが使えない場合はこのメソッドは何もしません。

listen(backlog) -> 0[permalink][rdoc]

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

0 を返します。

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

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

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

recvfrom(2) がエラーになった場合、 EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。 Errno::EWOULDBLOCK、Errno::EAGAIN のような待ってからリトライすることが 可能であることを意味する例外には、IO::WaitReadable が extend されています。

[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_PACKET -> Integer[permalink][rdoc]
PF_PACKET -> Integer

デバイスレベルインターフェース。 Socket.open の第一引数 domain に使用します。

[SEE_ALSO] socket(2linux), packet(7linux)

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_NUMERICSERV -> Integer[permalink][rdoc]

Prevent server 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_OVERFLOW -> Integer[permalink][rdoc]

Argument buffer overflow

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)

IFNAMSIZ -> Integer[permalink][rdoc]
IF_NAMESIZE -> Integer

インターフェース名文字列の最大長さ。

[SEE_ALSO] net/if.h(header)

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]

INET6_ADDRSTRLEN -> Integer[permalink][rdoc]

IPv6アドレス文字列の最大長。

[SEE_ALSO] netinet/in.h(header)

INET_ADDRSTRLEN -> Integer[permalink][rdoc]

IPv4アドレス文字列の最大長。

[SEE_ALSO] netinet/in.h(header)

IPPORT_RESERVED -> Integer[permalink][rdoc]

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

IPPORT_USERRESERVED -> Integer[permalink][rdoc]

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

IPPROTO_AH -> Integer[permalink][rdoc]

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

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

[SEE_ALSO] [RFC2292]

IPPROTO_BIP -> Integer[permalink][rdoc]

[TODO]

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

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

IPPROTO_DSTOPTS -> Integer[permalink][rdoc]

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

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

[SEE_ALSO] [RFC2292]

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_ESP -> Integer[permalink][rdoc]

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

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

[SEE_ALSO] [RFC2292]

IPPROTO_FRAGMENT -> Integer[permalink][rdoc]

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

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

[SEE_ALSO] [RFC2292]

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_HOPOPTS -> Integer[permalink][rdoc]

IPv6 hop-by-hop options。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

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

[SEE_ALSO] [RFC2292]

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_ICMPV6 -> Integer[permalink][rdoc]

Internet Control Message Protocol for IPv6。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。

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

[SEE_ALSO] icmp6(4freebsd), [RFC2292]

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_IPV6 -> Integer[permalink][rdoc]

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

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

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

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_NONE -> Integer[permalink][rdoc]

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

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

[SEE_ALSO] [RFC2292]

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_ROUTING -> Integer[permalink][rdoc]

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

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

[SEE_ALSO] [RFC2292]

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 引数に渡す利用法もあります。

IPV6_CHECKSUM -> Integer[permalink][rdoc]

Byte offset into a packet where the checksum is located. BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, ip6(4freebsd), [RFC3542]

IPV6_DONTFRAG -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_DSTOPTS -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, ip6(4freebsd), ipv6(7linux), [RFC3542]

IPV6_HOPLIMIT -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, ip6(4freebsd), ipv6(7linux), [RFC3542]

IPV6_HOPOPTS -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, ip6(4freebsd), ipv6(7linux), [RFC3542]

IPV6_JOIN_GROUP -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, netinet/in.h(header), ip6(4freebsd), ipv6(7linux), [RFC3493]

IPV6_LEAVE_GROUP -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, netinet/in.h(header), ip6(4freebsd), ipv6(7linux), [RFC3493]

IPV6_MULTICAST_HOPS -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, netinet/in.h(header), ip6(4freebsd), ipv6(7linux), [RFC3493]

IPV6_MULTICAST_IF -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, netinet/in.h(header), ip6(4freebsd), ipv6(7linux), [RFC3493]

IPV6_MULTICAST_LOOP -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, netinet/in.h(header), ip6(4freebsd), ipv6(7linux), [RFC3493]

IPV6_NEXTHOP -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_PATHMTU -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_PKTINFO -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, ip6(4freebsd), ipv6(7linux), [RFC3542]

IPV6_RECVDSTOPTS -> Integer[permalink][rdoc]

Receive all IP6 options for response。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_RECVHOPLIMIT -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_RECVHOPOPTS -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_RECVPATHMTU -> Integer[permalink][rdoc]

Receive current path MTU with datagram。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_RECVPKTINFO -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_RECVRTHDR -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_RECVTCLASS -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_RTHDR -> Integer[permalink][rdoc]

Allows removal of sticky routing headers。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_RTHDRDSTOPTS -> Integer[permalink][rdoc]

Allows removal of sticky destination options header。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_RTHDR_TYPE_0 -> Integer[permalink][rdoc]
Routing header type 0。

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_TCLASS -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_UNICAST_HOPS -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, netinet/in.h(header), ip6(4freebsd), ipv6(7linux), [RFC3493]

IPV6_USE_MIN_MTU -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, [RFC3542]

IPV6_V6ONLY -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IPV6, netinet/in.h(header), ip6(4freebsd), ipv6(7linux), [RFC3493]

IPX_TYPE -> Integer[permalink][rdoc]

[TODO]

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_ADD_SOURCE_MEMBERSHIP -> Integer[permalink][rdoc]

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

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

IP_BLOCK_SOURCE -> Integer[permalink][rdoc]

Block IPv4 multicast packets with a give source address。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

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

IP_DEFAULT_MULTICAST_LOOP -> Integer[permalink][rdoc]

[TODO]

Default multicast loopback

IP_DEFAULT_MULTICAST_TTL -> Integer[permalink][rdoc]

[TODO]

Default multicast TTL

IP_DONTFRAG -> Integer[permalink][rdoc]

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

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

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_DROP_SOURCE_MEMBERSHIP -> Integer[permalink][rdoc]

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

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

IP_FREEBIND -> Integer[permalink][rdoc]

Allow binding to nonexistent IP addresses。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] Socket::Constants::IPPROTO_IP, 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_IPSEC_POLICY -> Integer[permalink][rdoc]

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

[SEE_ALSO] Socket::Constants::IPPROTO_IP, http://netbsd.gw.com/cgi-bin/man-cgi?ip++NetBSD-current

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_MINTTL -> Integer[permalink][rdoc]

Minimum TTL allowed for received packets。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

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

IP_MSFILTER -> Integer[permalink][rdoc]

[TODO]

Multicast source filtering

IP_MTU -> Integer[permalink][rdoc]

The Maximum Transmission Unit of the socket。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

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

IP_MTU_DISCOVER -> Integer[permalink][rdoc]

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

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

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_ONESBCAST -> Integer[permalink][rdoc]

Force outgoing broadcast datagrams to have the undirected broadcast address。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

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

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_PASSSEC -> Integer[permalink][rdoc]

[TODO]

Retrieve security context with datagram。

IP_PKTINFO -> Integer[permalink][rdoc]

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

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

IP_PKTOPTIONS -> Integer[permalink][rdoc]

[TODO]

Receive packet options with datagrams

IP_PMTUDISC_DO -> Integer[permalink][rdoc]

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

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

IP_PMTUDISC_DONT -> Integer[permalink][rdoc]

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

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

IP_PMTUDISC_WANT -> Integer[permalink][rdoc]

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

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

IP_PORTRANGE -> Integer[permalink][rdoc]

Set the port range for sockets with unspecified port numbers。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

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

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_RECVERR -> Integer[permalink][rdoc]

Enable extended reliable error message passing。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

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

IP_RECVIF -> Integer[permalink][rdoc]

Receive interface information with datagrams。 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_RECVSLLA -> Integer[permalink][rdoc]

[TODO]

Receive link-layer address with datagrams

IP_RECVTOS -> Integer[permalink][rdoc]

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

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

IP_RECVTTL -> Integer[permalink][rdoc]

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

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

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_ROUTER_ALERT -> Integer[permalink][rdoc]

Notify transit routers to more closely examine the contents of an IP packet。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

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

IP_SENDSRCADDR -> Integer[permalink][rdoc]

ource address for outgoing UDP datagrams。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

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

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)

IP_UNBLOCK_SOURCE -> Integer[permalink][rdoc]

Unblock IPv4 multicast packets with a give source address。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

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

IP_XFRM_POLICY -> Integer[permalink][rdoc]

[TODO]

LOCAL_CONNWAIT -> Integer[permalink][rdoc]

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

[SEE_ALSO] ip(4freebsd)

LOCAL_CREDS -> Integer[permalink][rdoc]

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

[SEE_ALSO] ip(4freebsd)

LOCAL_PEERCRED -> Integer[permalink][rdoc]

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

[SEE_ALSO] ip(4freebsd)

MCAST_BLOCK_SOURCE -> Integer[permalink][rdoc]

Block multicast packets from this source

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

[SEE_ALSO] Socket::Constants::IPPROTO_IP, Socket::Constants::IPPROTO_IPV6, [RFC3678]

MCAST_EXCLUDE -> Integer[permalink][rdoc]

Exclusive multicast source filter

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

[SEE_ALSO] Socket::Constants::IPPROTO_IP, Socket::Constants::IPPROTO_IPV6, [RFC3678]

MCAST_INCLUDE -> Integer[permalink][rdoc]

Inclusive multicast source filter

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

[SEE_ALSO] Socket::Constants::IPPROTO_IP, Socket::Constants::IPPROTO_IPV6, [RFC3678]

MCAST_JOIN_GROUP -> Integer[permalink][rdoc]

Join a multicast group

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

[SEE_ALSO] Socket::Constants::IPPROTO_IP, Socket::Constants::IPPROTO_IPV6, [RFC3678]

MCAST_JOIN_SOURCE_GROUP -> Integer[permalink][rdoc]

Join a multicast source group

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

[SEE_ALSO] Socket::Constants::IPPROTO_IP, Socket::Constants::IPPROTO_IPV6, [RFC3678]

MCAST_LEAVE_GROUP -> Integer[permalink][rdoc]

Leave a multicast group

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

[SEE_ALSO] Socket::Constants::IPPROTO_IP, Socket::Constants::IPPROTO_IPV6, [RFC3678]

MCAST_LEAVE_SOURCE_GROUP -> Integer[permalink][rdoc]

Leave a multicast source group

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

[SEE_ALSO] Socket::Constants::IPPROTO_IP, Socket::Constants::IPPROTO_IPV6, [RFC3678]

MCAST_MSFILTER -> Integer[permalink][rdoc]

[TODO]

Multicast source filtering

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

[SEE_ALSO] Socket::Constants::IPPROTO_IP, Socket::Constants::IPPROTO_IPV6, [RFC3678]

MCAST_UNBLOCK_SOURCE -> Integer[permalink][rdoc]

Unblock multicast packets from this source

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

[SEE_ALSO] Socket::Constants::IPPROTO_IP, Socket::Constants::IPPROTO_IPV6, [RFC3678]

MSG_COMPAT -> Integer[permalink][rdoc]

[TODO]

End of record

MSG_CONFIRM -> Integer[permalink][rdoc]

Confirm path validity

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

[SEE_ALSO] send(2linux)

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_ERRQUEUE -> Integer[permalink][rdoc]

Fetch message from error queue

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

[SEE_ALSO] recv(2linux)

MSG_FIN -> Integer[permalink][rdoc]

[TODO]

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_MORE -> Integer[permalink][rdoc]

Sender will send more

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

[SEE_ALSO] send(2linux)

MSG_NOSIGNAL -> Integer[permalink][rdoc]

Do not generate SIGPIPE

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

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

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_PROXY -> Integer[permalink][rdoc]

[TODO]

Wait for full request

MSG_RCVMORE -> Integer[permalink][rdoc]

[TODO]

Data remains in the current packet

MSG_RST -> Integer[permalink][rdoc]

[TODO]

MSG_SEND -> Integer[permalink][rdoc]

[TODO]

Send the packet in so_temp

MSG_SYN -> Integer[permalink][rdoc]

[TODO]

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。

SCM_BINTIME -> Integer[permalink][rdoc]

Timestamp (bintime).

Socket::AncillaryData の type として利用します。

[SEE_ALSO] Socket::AncillaryData, Socket::AncillaryData#timestamp BasicSocket#sendmsg, BasicSocket#recvmsg

SCM_CREDENTIALS -> Integer[permalink][rdoc]

The sender's credentials

Socket::AncillaryData の type として利用します。

[SEE_ALSO] Socket::AncillaryData, BasicSocket#sendmsg, BasicSocket#recvmsg, unix(7linux)

SCM_CREDS -> Integer[permalink][rdoc]

Process credentials

Socket::AncillaryData の type として利用します。

[SEE_ALSO] Socket::AncillaryData, BasicSocket#sendmsg, BasicSocket#recvmsg, unix(4freebsd)

SCM_RIGHTS -> Integer[permalink][rdoc]

Access rights.

Socket::AncillaryData の type として利用します。

[SEE_ALSO] Socket::AncillaryData, Socket::AncillaryData#unix_rights BasicSocket#sendmsg, BasicSocket#recvmsg, unix(7linux), unix(4freebsd), sys/socket.h(header)

SCM_TIMESTAMP -> Integer[permalink][rdoc]

Timestamp (timeval).

Socket::AncillaryData の type として利用します。

[SEE_ALSO] Socket::AncillaryData, Socket::AncillaryData#timestamp BasicSocket#sendmsg, BasicSocket#recvmsg

SCM_TIMESTAMPNS -> Integer[permalink][rdoc]

Timestamp (timespec).

Socket::AncillaryData の type として利用します。

[SEE_ALSO] Socket::AncillaryData, Socket::AncillaryData#timestamp BasicSocket#sendmsg, BasicSocket#recvmsg

SCM_UCRED -> Integer[permalink][rdoc]

[TODO]

User credentials。

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

SOMAXCONN -> Integer[permalink][rdoc]

Socket#listen の backlog の最大長。

[SEE_ALSO] sys/socket.h(header), listen(2)

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_ALLZONES -> Integer[permalink][rdoc]

[TODO]

Bypass zone boundaries。

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_BINTIME -> Integer[permalink][rdoc]

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

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

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_MAC_EXEMPT -> Integer[permalink][rdoc]

[TODO]

Mandatory Access Control exemption for unlabeled peers。

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_RECVUCRED -> Integer[permalink][rdoc]

[TODO]

Receive user credentials with datagram。

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_TIMESTAMPNS -> Integer[permalink][rdoc]

[TODO]

Receive nanosecond timestamp with datagrams (timespec)。

[SEE_ALSO] Socket::Constants::SO_TIMESTAMP, 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_CORK -> Integer[permalink][rdoc]

Don't send partial frames。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] tcp(7linux)

TCP_DEFER_ACCEPT -> Integer[permalink][rdoc]

Don't notify a listening socket until data is ready。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] tcp(7linux)

TCP_INFO -> Integer[permalink][rdoc]

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

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

TCP_KEEPCNT -> Integer[permalink][rdoc]

Maximum number of keepalive probes allowed before dropping a connection。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] tcp(7linux)

TCP_KEEPIDLE -> Integer[permalink][rdoc]

Idle time before keepalive probes are sent。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] tcp(7linux)

TCP_KEEPINTVL -> Integer[permalink][rdoc]

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

[SEE_ALSO] tcp(7linux)

TCP_LINGER2 -> Integer[permalink][rdoc]

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

[SEE_ALSO] tcp(7linux)

TCP_MAXSEG -> Integer[permalink][rdoc]

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

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

TCP_MD5SIG -> Integer[permalink][rdoc]

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

[SEE_ALSO] tcp(4freebsd), [RFC2385]

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)

TCP_NOOPT -> Integer[permalink][rdoc]

Don't use TCP options。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

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

TCP_NOPUSH -> Integer[permalink][rdoc]

Don't push the last block of write。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

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

TCP_QUICKACK -> Integer[permalink][rdoc]

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

[SEE_ALSO] tcp(7linux)

TCP_SYNCNT -> Integer[permalink][rdoc]

Number of SYN retransmits before a connection is dropped。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] tcp(7linux)

TCP_WINDOW_CLAMP -> Integer[permalink][rdoc]

Clamp the size of the advertised window。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] tcp(7linux)

UDP_CORK -> Integer[permalink][rdoc]

Don't send partial frames BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

[SEE_ALSO] udp(7linux)