class Socket

[edit]

要約

汎用ソケットクラス。

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

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

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

目次

特異メソッド
インスタンスメソッド
定数

継承しているメソッド

BasicSocketから継承しているメソッド
IOから継承しているメソッド
Enumerableから継承しているメソッド

特異メソッド

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

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][edit]

[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 メンバに相当する整数。 Socket::AI_PASSIVEなど。
[RETURN]
7つの要素からなるアドレス情報に関する配列を返します。
[EXCEPTION] SocketError:
getaddrinfo(3)がエラーを返したときに発生する例外です

[SEE_ALSO] Addrinfo.getaddrinfo

アドレス情報について

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

  • 第0要素 - アドレスファミリー (String)
  • 第1要素 - ポート番号 (Integer)
  • 第2要素 - ホスト名 (String)
  • 第3要素 - アドレス (String)
  • 第4要素 - アドレスファミリーに対応する Integer
  • 第5要素 - ソケットタイプに対応する Integer
  • 第6要素 - プロトコルに対応する Integer

必須引数について

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

省略可能な引数について

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

  • family - アドレスファミリー。 Socket::Constants::AF_INET など、AF_ で始まる定数を指定します。
  • socktype - ソケットタイプ。 Socket::Constants::SOCK_STREAM など、SOCK_ で始まる定数を指定 します。
  • protocol - プロトコル。 Socket::Constants::IPPROTO_IP など、IPPROTO_ で始まる定数を指 定します。
  • flags - getaddrinfo(3) の第3引数に指定する addrinfo 構造体の ai_flags メンバに相当する Fixnum。 Socket::AI_PASSIVE、 Socket::AI_CANONNAME、 Socket::AI_NUMERICHOST が用意されている場合があります。

定数の意味について

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

使用例

例:

require 'socket'

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][edit]

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

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

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

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

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

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

  • ホスト名
  • ホストの別名の配列
  • ホストのアドレスタイプ (整数定数)
  • ホストのアドレス

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

使用例

irb(main):009:0> require 'socket'

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][edit]

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

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

例:

require 'socket'

p Socket.gethostname   #=> "helium.ruby-lang.org"
getifaddrs -> [Socket::Ifaddr][permalink][rdoc][edit]

インターフェイスのアドレスを Socket::Ifaddr の配列で返します。

本メソッドはマルチキャスト通信が可能なインターフェイスを見つけるために使う事ができます。

require 'socket'

pp Socket.getifaddrs.reject {|ifaddr|
  !ifaddr.addr.ip? || (ifaddr.flags & Socket::IFF_MULTICAST == 0)
}.map {|ifaddr| [ifaddr.name, ifaddr.ifindex, ifaddr.addr] }
#=> [["eth0", 2, #<Addrinfo: 221.186.184.67>],
#    ["eth0", 2, #<Addrinfo: fe80::216:3eff:fe95:88bb%eth0>]]

例(GNU/Linux):

require 'socket'

pp Socket.getifaddrs
#=> [#<Socket::Ifaddr lo UP,LOOPBACK,RUNNING,0x10000 PACKET[protocol=0 lo hatype=772 HOST hwaddr=00:00:00:00:00:00]>,
#    #<Socket::Ifaddr eth0 UP,BROADCAST,RUNNING,MULTICAST,0x10000 PACKET[protocol=0 eth0 hatype=1 HOST hwaddr=00:16:3e:95:88:bb] broadcast=PACKET[protocol=0 eth0 hatype=1 HOST hwaddr=ff:ff:ff:ff:ff:ff]>,
#    #<Socket::Ifaddr sit0 NOARP PACKET[protocol=0 sit0 hatype=776 HOST hwaddr=00:00:00:00]>,
#    #<Socket::Ifaddr lo UP,LOOPBACK,RUNNING,0x10000 127.0.0.1 netmask=255.0.0.0>,
#    #<Socket::Ifaddr eth0 UP,BROADCAST,RUNNING,MULTICAST,0x10000 221.186.184.67 netmask=255.255.255.240 broadcast=221.186.184.79>,
#    #<Socket::Ifaddr lo UP,LOOPBACK,RUNNING,0x10000 ::1 netmask=ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff>,
#    #<Socket::Ifaddr eth0 UP,BROADCAST,RUNNING,MULTICAST,0x10000 fe80::216:3eff:fe95:88bb%eth0 netmask=ffff:ffff:ffff:ffff::>]

例(FreeBSD):

require 'socket'

pp Socket.getifaddrs
#=> [#<Socket::Ifaddr usbus0 UP,0x10000 LINK[usbus0]>,
#    #<Socket::Ifaddr re0 UP,BROADCAST,RUNNING,MULTICAST,0x800 LINK[re0 3a:d0:40:9a:fe:e8]>,
#    #<Socket::Ifaddr re0 UP,BROADCAST,RUNNING,MULTICAST,0x800 10.250.10.18 netmask=255.255.255.? (7 bytes for 16 bytes sockaddr_in) broadcast=10.250.10.255>,
#    #<Socket::Ifaddr re0 UP,BROADCAST,RUNNING,MULTICAST,0x800 fe80:2::38d0:40ff:fe9a:fee8 netmask=ffff:ffff:ffff:ffff::>,
#    #<Socket::Ifaddr re0 UP,BROADCAST,RUNNING,MULTICAST,0x800 2001:2e8:408:10::12 netmask=UNSPEC>,
#    #<Socket::Ifaddr plip0 POINTOPOINT,MULTICAST,0x800 LINK[plip0]>,
#    #<Socket::Ifaddr lo0 UP,LOOPBACK,RUNNING,MULTICAST LINK[lo0]>,
#    #<Socket::Ifaddr lo0 UP,LOOPBACK,RUNNING,MULTICAST ::1 netmask=ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff>,
#    #<Socket::Ifaddr lo0 UP,LOOPBACK,RUNNING,MULTICAST fe80:4::1 netmask=ffff:ffff:ffff:ffff::>,
#    #<Socket::Ifaddr lo0 UP,LOOPBACK,RUNNING,MULTICAST 127.0.0.1 netmask=255.?.?.? (5 bytes for 16 bytes sockaddr_in)>]
getnameinfo(sa, flags = 0) -> Array[permalink][rdoc][edit]

[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つの場合があります。

  • 要素が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)を参照して下さい。

使用例

require 'socket'

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") -> Integer[permalink][rdoc][edit]

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

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

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

[PARAM] port:
ポート番号
[PARAM] protocol_name:
"tcp" や "udp" などのプロトコル名
[RETURN]
サービスの正式名
require 'socket'

Socket.getservbyport(80)         #=> "www"
Socket.getservbyport(514, "tcp") #=> "shell"
Socket.getservbyport(514, "udp") #=> "syslog"
ip_address_list -> [Addrinfo][permalink][rdoc][edit]

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

open(domain, type, protocol=0) -> Socket[permalink][rdoc][edit]
new(domain, type, protocol=0) -> Socket

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

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

require 'socket'

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][edit]
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][edit]
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][edit]
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, connect_timeout: nil) -> Socket[permalink][rdoc][edit]
tcp(host, port, local_host=nil, local_port=nil, connect_timeout: nil) {|socket| ... } -> object

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

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

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

[PARAM] host:
接続先のホスト名
[PARAM] port:
接続先のポート番号
[PARAM] local_host:
接続元のホスト名
[PARAM] local_port:
接続元のポート番号
[PARAM] connect_timeout:
タイムアウトまでの秒数
[RETURN]
ブロック付きで呼ばれた場合はブロックが返した値です。ブロックなしで呼ばれた場合はソケットオブジェクトを返します。
require 'socket'

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][edit]
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 サーバ
# 一度に一つのクライアントした取り扱えない
require 'socket'

Socket.tcp_server_loop(16807) {|sock, client_addrinfo|
  begin
    IO.copy_stream(sock, sock)
  ensure
    sock.close
  end
}

# スレッドを使った echo サーバ
# 同時に複数のクライアントを取り扱える
# 以下の例だと接続制限がない(つまり接続過剰になりえる)ことに注意
require 'socket'

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][edit]
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 の場合は、実際のポート番号は動的に選ばれます。ただし返り値のソケットはすべて同じ番号を持ちます。

require 'socket'

# 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][edit]
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][edit]

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][edit]

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

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

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

require 'socket'

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][edit]
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
require 'socket'

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][edit]
unix(path) {|sock| ... } -> object

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

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

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

require 'socket'

# /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][edit]

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][edit]
unix_server_socket(path) {|sock| ... } -> object

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

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

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

require 'socket'

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][edit]

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][edit]

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][edit]

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

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

例:

require 'socket'

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][edit]

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

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

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

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

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

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

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 に接続するには以下のようにします。

例:

require 'socket'

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][edit]

ソケットをノンブロッキングモードに設定した後、 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][edit]

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

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

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

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

0 を返します。

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

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

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

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

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

例:

require 'socket'

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][edit]

ソケットをノンブロッキングモードに設定した後、 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][edit]

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

定数

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

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

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

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

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

[SEE_ALSO] socket(2freebsd)

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

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

[SEE_ALSO] socket(2linux)

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

[TODO]

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

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

[TODO]

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

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

[TODO]

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

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

[TODO]

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

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

[TODO]

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

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

[TODO]

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

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

[TODO]

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

AF_E164 -> Integer[permalink][rdoc][edit]

[TODO]

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

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

[TODO]

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

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

[TODO]

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

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

[TODO]

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

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

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

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

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

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

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

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

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

[SEE_ALSO] socket(3linux)

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

[TODO]

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

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

[TODO]

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

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

[TODO]

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

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

[TODO]

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

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

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

[SEE_ALSO] Socket::Constants::PF_MAX

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

[TODO]

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

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

[TODO]

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

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

[TODO]

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

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

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

[SEE_ALSO] socket(2freebsd)

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

[TODO]

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

AF_PACKET -> Integer[permalink][rdoc][edit]
PF_PACKET -> Integer

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

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

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

[TODO]

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

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

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

[SEE_ALSO] socket(2freebsd)

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

[TODO]

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

[TODO]

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

[TODO]

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

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

[TODO]

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

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

[TODO]

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

AF_UNSPEC -> Integer[permalink][rdoc][edit]

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

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

AI_ADDRCONFIG -> Integer[permalink][rdoc][edit]

Accept only if any address is assigned。

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

[SEE_ALSO] getaddrinfo(3)

AI_ALL -> Integer[permalink][rdoc][edit]

Allow all addresses。

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

[SEE_ALSO] getaddrinfo(3)

AI_CANONNAME -> Integer[permalink][rdoc][edit]

Fill in the canonical name。

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

[SEE_ALSO] getaddrinfo(3)

AI_DEFAULT -> Integer[permalink][rdoc][edit]

Default flags for getaddrinfo。

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

[SEE_ALSO] getipnodebyname(3freebsd)

AI_MASK -> Integer[permalink][rdoc][edit]

[TODO]

AI_NUMERICHOST -> Integer[permalink][rdoc][edit]

Prevent host name resolution。

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

[SEE_ALSO] getaddrinfo(3)

AI_NUMERICSERV -> Integer[permalink][rdoc][edit]

Prevent server name resolution。

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

[SEE_ALSO] getaddrinfo(3)

AI_PASSIVE -> Integer[permalink][rdoc][edit]

Get address to use with bind。

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

[SEE_ALSO] getaddrinfo(3)

AI_V4MAPPED -> Integer[permalink][rdoc][edit]

Accept IPv4-mapped IPv6 addresses。

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

[SEE_ALSO] getaddrinfo(3)

AI_V4MAPPED_CFG -> Integer[permalink][rdoc][edit]

Accept IPv4 mapped addresses if the kernel supports it。

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

[SEE_ALSO] getipnodebyname(3freebsd)

EAI_ADDRFAMILY -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

Invalid flags

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

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

EAI_BADHINTS -> Integer[permalink][rdoc][edit]

Invalid value for hints

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

EAI_FAIL -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

EAI_* 定数の最大値。

EAI_MEMORY -> Integer[permalink][rdoc][edit]

Memory allocation failure

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

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

EAI_NODATA -> Integer[permalink][rdoc][edit]

No address associated with hostname

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

[SEE_ALSO] getaddrinfo(3linux)

EAI_NONAME -> Integer[permalink][rdoc][edit]

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][edit]

Argument buffer overflow

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

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

EAI_PROTOCOL -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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][edit]

System error returned in errno

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

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

IFF_802_1Q_VLAN[permalink][rdoc][edit]

802.1Q VLAN device

IFF_ALLMULTI[permalink][rdoc][edit]

receive all multicast packets

IFF_ALTPHYS[permalink][rdoc][edit]

use alternate physical connection

IFF_AUTOMEDIA[permalink][rdoc][edit]

auto media select active

IFF_BONDING[permalink][rdoc][edit]

bonding master or slave

IFF_BRIDGE_PORT[permalink][rdoc][edit]

device used as bridge port

IFF_BROADCAST[permalink][rdoc][edit]

broadcast address valid

IFF_CANTCHANGE[permalink][rdoc][edit]

flags not changeable

IFF_CANTCONFIG[permalink][rdoc][edit]

unconfigurable using ioctl(2)

IFF_DEBUG[permalink][rdoc][edit]

turn on debugging

IFF_DISABLE_NETPOLL[permalink][rdoc][edit]

disable netpoll at run-time

IFF_DONT_BRIDGE[permalink][rdoc][edit]

disallow bridging this ether dev

IFF_DORMANT[permalink][rdoc][edit]

driver signals dormant

IFF_DRV_OACTIVE[permalink][rdoc][edit]

tx hardware queue is full

IFF_DRV_RUNNING[permalink][rdoc][edit]

resources allocated

IFF_DYING[permalink][rdoc][edit]

interface is winding down

IFF_DYNAMIC[permalink][rdoc][edit]

dialup device with changing addresses

IFF_EBRIDGE[permalink][rdoc][edit]

ethernet bridging device

IFF_ECHO[permalink][rdoc][edit]

echo sent packets

IFF_ISATAP[permalink][rdoc][edit]

ISATAP interface (RFC4214)

IFF_LINK0[permalink][rdoc][edit]

per link layer defined bit 0

IFF_LINK1[permalink][rdoc][edit]

per link layer defined bit 1

IFF_LINK2[permalink][rdoc][edit]

per link layer defined bit 2

IFF_LIVE_ADDR_CHANGE[permalink][rdoc][edit]

hardware address change when it's running

IFF_LOOPBACK[permalink][rdoc][edit]

loopback net

IFF_LOWER_UP[permalink][rdoc][edit]

driver signals L1 up

IFF_MACVLAN_PORT[permalink][rdoc][edit]

device used as macvlan port

IFF_MASTER[permalink][rdoc][edit]

master of a load balancer

IFF_MASTER_8023AD[permalink][rdoc][edit]

bonding master, 802.3ad.

IFF_MASTER_ALB[permalink][rdoc][edit]

bonding master, balance-alb.

IFF_MASTER_ARPMON[permalink][rdoc][edit]

bonding master, ARP mon in use

IFF_MONITOR[permalink][rdoc][edit]

user-requested monitor mode

IFF_MULTICAST[permalink][rdoc][edit]

supports multicast

IFF_NOARP[permalink][rdoc][edit]

no address resolution protocol

IFF_NOTRAILERS[permalink][rdoc][edit]

avoid use of trailers

IFF_OACTIVE[permalink][rdoc][edit]

transmission in progress

IFF_OVS_DATAPATH[permalink][rdoc][edit]

device used as Open vSwitch datapath port

IFF_POINTOPOINT[permalink][rdoc][edit]

point-to-point link

IFF_PORTSEL[permalink][rdoc][edit]

can set media type

IFF_PPROMISC[permalink][rdoc][edit]

user-requested promisc mode

IFF_PROMISC[permalink][rdoc][edit]

receive all packets

IFF_RENAMING[permalink][rdoc][edit]

interface is being renamed

IFF_ROUTE[permalink][rdoc][edit]

routing entry installed

IFF_RUNNING[permalink][rdoc][edit]

resources allocated

IFF_SIMPLEX[permalink][rdoc][edit]

can't hear own transmissions

IFF_SLAVE[permalink][rdoc][edit]

slave of a load balancer

IFF_SLAVE_INACTIVE[permalink][rdoc][edit]

bonding slave not the curr. active

IFF_SLAVE_NEEDARP[permalink][rdoc][edit]

need ARPs for validation

IFF_SMART[permalink][rdoc][edit]

interface manages own routes

IFF_STATICARP[permalink][rdoc][edit]

static ARP

IFF_SUPP_NOFCS[permalink][rdoc][edit]

sending custom FCS

IFF_TEAM_PORT[permalink][rdoc][edit]

used as team port

IFF_TX_SKB_SHARING[permalink][rdoc][edit]

sharing skbs on transmit

IFF_UNICAST_FLT[permalink][rdoc][edit]

unicast filtering

IFF_UP[permalink][rdoc][edit]

interface is up

IFF_VOLATILE[permalink][rdoc][edit]

volatile flags

IFF_WAN_HDLC[permalink][rdoc][edit]

WAN HDLC device

IFF_XMIT_DST_RELEASE[permalink][rdoc][edit]

dev_hard_start_xmit() is allowed to release skb->dst

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

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

[SEE_ALSO] net/if.h(header)

INADDR_ALLHOSTS_GROUP -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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

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

INADDR_LOOPBACK -> Integer[permalink][rdoc][edit]

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

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

INADDR_MAX_LOCAL_GROUP -> Integer[permalink][rdoc][edit]

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][edit]

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

INADDR_UNSPEC_GROUP -> Integer[permalink][rdoc][edit]

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][edit]

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

[SEE_ALSO] netinet/in.h(header)

INET_ADDRSTRLEN -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] netinet/in.h(header)

IPPORT_RESERVED -> Integer[permalink][rdoc][edit]

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

IPPORT_USERRESERVED -> Integer[permalink][rdoc][edit]

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

IPPROTO_AH -> Integer[permalink][rdoc][edit]

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

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

[SEE_ALSO] [RFC2292]

IPPROTO_BIP -> Integer[permalink][rdoc][edit]

[TODO]

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

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

IPPROTO_DSTOPTS -> Integer[permalink][rdoc][edit]

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

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

[SEE_ALSO] [RFC2292]

IPPROTO_EGP -> Integer[permalink][rdoc][edit]

[TODO]

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

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

IPPROTO_EON -> Integer[permalink][rdoc][edit]

[TODO]

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

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

IPPROTO_ESP -> Integer[permalink][rdoc][edit]

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

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

[SEE_ALSO] [RFC2292]

IPPROTO_FRAGMENT -> Integer[permalink][rdoc][edit]

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

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

[SEE_ALSO] [RFC2292]

IPPROTO_GGP -> Integer[permalink][rdoc][edit]

[TODO]

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

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

IPPROTO_HELLO -> Integer[permalink][rdoc][edit]

[TODO]

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

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

IPPROTO_HOPOPTS -> Integer[permalink][rdoc][edit]

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

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

[SEE_ALSO] [RFC2292]

IPPROTO_ICMP -> Integer[permalink][rdoc][edit]

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][edit]

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

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

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

IPPROTO_IDP -> Integer[permalink][rdoc][edit]

[TODO]

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

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

IPPROTO_IGMP -> Integer[permalink][rdoc][edit]

[TODO]

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

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

IPPROTO_IP -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

IPPROTO 定数の最大値。

IPPROTO_ND -> Integer[permalink][rdoc][edit]

[TODO]

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

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

IPPROTO_NONE -> Integer[permalink][rdoc][edit]

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

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

[SEE_ALSO] [RFC2292]

IPPROTO_PUP -> Integer[permalink][rdoc][edit]

[TODO]

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

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

IPPROTO_RAW -> Integer[permalink][rdoc][edit]

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][edit]

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

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

[SEE_ALSO] [RFC2292]

IPPROTO_TCP -> Integer[permalink][rdoc][edit]

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][edit]

[TODO]

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

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

IPPROTO_UDP -> Integer[permalink][rdoc][edit]

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][edit]

[TODO]

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

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

IPV6_CHECKSUM -> Integer[permalink][rdoc][edit]

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][edit]

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

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

IPV6_DSTOPTS -> Integer[permalink][rdoc][edit]

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

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

IPV6_HOPLIMIT -> Integer[permalink][rdoc][edit]

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

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

IPV6_HOPOPTS -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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][edit]

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][edit]

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][edit]

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][edit]

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

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

IPV6_PATHMTU -> Integer[permalink][rdoc][edit]

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

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

IPV6_PKTINFO -> Integer[permalink][rdoc][edit]

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][edit]

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

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

IPV6_RECVHOPLIMIT -> Integer[permalink][rdoc][edit]

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

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

IPV6_RECVHOPOPTS -> Integer[permalink][rdoc][edit]

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

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

IPV6_RECVPATHMTU -> Integer[permalink][rdoc][edit]

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

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

IPV6_RECVPKTINFO -> Integer[permalink][rdoc][edit]

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][edit]

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

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

IPV6_RECVTCLASS -> Integer[permalink][rdoc][edit]

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

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

IPV6_RTHDR -> Integer[permalink][rdoc][edit]

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

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

IPV6_RTHDRDSTOPTS -> Integer[permalink][rdoc][edit]

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][edit]
Routing header type 0。

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

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

IPV6_TCLASS -> Integer[permalink][rdoc][edit]

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

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

IPV6_UNICAST_HOPS -> Integer[permalink][rdoc][edit]

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][edit]

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

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

IPV6_V6ONLY -> Integer[permalink][rdoc][edit]

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][edit]

[TODO]

IP_ADD_MEMBERSHIP -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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][edit]

[TODO]

Default multicast loopback

IP_DEFAULT_MULTICAST_TTL -> Integer[permalink][rdoc][edit]

[TODO]

Default multicast TTL

IP_DONTFRAG -> Integer[permalink][rdoc][edit]

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

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

IP_DROP_MEMBERSHIP -> Integer[permalink][rdoc][edit]

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][edit]

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

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

IP_FREEBIND -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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][edit]

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][edit]

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][edit]

[TODO]

Multicast source filtering

IP_MTU -> Integer[permalink][rdoc][edit]

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][edit]

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

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

IP_MULTICAST_IF -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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

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

IP_ONESBCAST -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

[TODO]

Retrieve security context with datagram。

IP_PKTINFO -> Integer[permalink][rdoc][edit]

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

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

IP_PKTOPTIONS -> Integer[permalink][rdoc][edit]

[TODO]

Receive packet options with datagrams

IP_PMTUDISC_DO -> Integer[permalink][rdoc][edit]

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

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

IP_PMTUDISC_DONT -> Integer[permalink][rdoc][edit]

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

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

IP_PMTUDISC_WANT -> Integer[permalink][rdoc][edit]

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

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

IP_PORTRANGE -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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][edit]

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

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

IP_RECVOPTS -> Integer[permalink][rdoc][edit]

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][edit]

[TODO]

Receive all IP options for response

IP_RECVSLLA -> Integer[permalink][rdoc][edit]

[TODO]

Receive link-layer address with datagrams

IP_RECVTOS -> Integer[permalink][rdoc][edit]

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

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

IP_RECVTTL -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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][edit]

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][edit]

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][edit]

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][edit]

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][edit]

[TODO]

LOCAL_CONNWAIT -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] ip(4freebsd)

LOCAL_CREDS -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] ip(4freebsd)

LOCAL_PEERCRED -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] ip(4freebsd)

MCAST_BLOCK_SOURCE -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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][edit]

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][edit]

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][edit]

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][edit]

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][edit]

[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][edit]

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][edit]

[TODO]

End of record

MSG_CONFIRM -> Integer[permalink][rdoc][edit]

Confirm path validity

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

[SEE_ALSO] send(2linux)

MSG_CTRUNC -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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][edit]

Data completes connection。

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

[SEE_ALSO] send(2freebsd)

MSG_EOR -> Integer[permalink][rdoc][edit]

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][edit]

Fetch message from error queue

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

[SEE_ALSO] recv(2linux)

MSG_FIN -> Integer[permalink][rdoc][edit]

[TODO]

MSG_FLUSH -> Integer[permalink][rdoc][edit]

[TODO]

Start of a hold sequence. Dumps to so_temp

MSG_HAVEMORE -> Integer[permalink][rdoc][edit]

[TODO]

Data ready to be read

MSG_HOLD -> Integer[permalink][rdoc][edit]

[TODO]

Hold fragment in so_temp

MSG_MORE -> Integer[permalink][rdoc][edit]

Sender will send more

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

[SEE_ALSO] send(2linux)

MSG_NOSIGNAL -> Integer[permalink][rdoc][edit]

Do not generate SIGPIPE

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

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

MSG_OOB -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

[TODO]

Wait for full request

MSG_RCVMORE -> Integer[permalink][rdoc][edit]

[TODO]

Data remains in the current packet

MSG_RST -> Integer[permalink][rdoc][edit]

[TODO]

MSG_SEND -> Integer[permalink][rdoc][edit]

[TODO]

Send the packet in so_temp

MSG_SYN -> Integer[permalink][rdoc][edit]

[TODO]

MSG_TRUNC -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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

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

require 'socket'

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][edit]

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

[SEE_ALSO] getnameinfo(3linux)

NI_MAXSERV -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] getnameinfo(3linux)

NI_NAMEREQD -> Integer[permalink][rdoc][edit]

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

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

require 'socket'

# ここでは 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][edit]

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][edit]

Return a numeric address.

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

[SEE_ALSO] getnameinfo(3)

NI_NUMERICSERV -> Integer[permalink][rdoc][edit]

Return the service name as a digit string

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

[SEE_ALSO] getnameinfo(3)

PF_KEY -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] socket(2freebsd)

PF_MAX -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] Socket::Constants::AF_MAX

PF_PIP -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] socket(2freebsd)

PF_RTIP -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] socket(2freebsd)

PF_UNSPEC -> Integer[permalink][rdoc][edit]

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

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

PF_XTP -> Integer[permalink][rdoc][edit]

[TODO]

eXpress Transfer Protocol。

SCM_BINTIME -> Integer[permalink][rdoc][edit]

Timestamp (bintime).

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

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

SCM_CREDENTIALS -> Integer[permalink][rdoc][edit]

The sender's credentials

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

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

SCM_CREDS -> Integer[permalink][rdoc][edit]

Process credentials

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

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

SCM_RIGHTS -> Integer[permalink][rdoc][edit]

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][edit]

Timestamp (timeval).

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

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

SCM_TIMESTAMPNS -> Integer[permalink][rdoc][edit]

Timestamp (timespec).

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

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

SCM_UCRED -> Integer[permalink][rdoc][edit]

[TODO]

User credentials。

SHUT_RD -> Integer[permalink][rdoc][edit]

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

SHUT_RDWR -> Integer[permalink][rdoc][edit]

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

SHUT_WR -> Integer[permalink][rdoc][edit]

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

SOCK_DGRAM -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] socket(2), Socket.open

SOCK_PACKET -> Integer[permalink][rdoc][edit]

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

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

SOCK_RAW -> Integer[permalink][rdoc][edit]

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

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

SOCK_RDM -> Integer[permalink][rdoc][edit]

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

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

SOCK_SEQPACKET -> Integer[permalink][rdoc][edit]

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

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

SOCK_STREAM -> Integer[permalink][rdoc][edit]

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

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

SOL_ATALK -> Integer[permalink][rdoc][edit]

[TODO]

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

SOL_AX25 -> Integer[permalink][rdoc][edit]

[TODO]

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

SOL_IP -> Integer[permalink][rdoc][edit]

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][edit]

[TODO]

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

SOL_SOCKET -> Integer[permalink][rdoc][edit]

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][edit]

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

[SEE_ALSO] Socket::Constants::IPPROTO_TCP

SOL_UDP -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] Socket::Constants::IPPROTO_UDP

SOMAXCONN -> Integer[permalink][rdoc][edit]

Socket#listen の backlog の最大長。

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

SOPRI_BACKGROUND -> Integer[permalink][rdoc][edit]

[TODO]

Background socket priority

SOPRI_INTERACTIVE -> Integer[permalink][rdoc][edit]

[TODO]

Interactive socket priority

SOPRI_NORMAL -> Integer[permalink][rdoc][edit]

Normal socket priority

[TODO]

SO_ACCEPTCONN -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

[TODO]

Bypass zone boundaries。

SO_ATTACH_FILTER -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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][edit]

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][edit]

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][edit]

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][edit]

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][edit]

[TODO]

Retain unread data

SO_ERROR -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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][edit]

[TODO]

Mandatory Access Control exemption for unlabeled peers。

SO_NKE -> Integer[permalink][rdoc][edit]

[TODO]

socket-level Network Kernel Extension。

SO_NOSIGPIPE -> Integer[permalink][rdoc][edit]

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][edit]

[TODO]

Disable checksums。

SO_NREAD -> Integer[permalink][rdoc][edit]

[TODO]

Get first packet byte count。

SO_OOBINLINE -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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][edit]

[TODO]

Name of the connecting user。

SO_PRIORITY -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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][edit]

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

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

SO_RECVUCRED -> Integer[permalink][rdoc][edit]

[TODO]

Receive user credentials with datagram。

SO_REUSEADDR -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

[TODO]

SO_SECURITY_ENCRYPTION_NETWORK -> Integer[permalink][rdoc][edit]

[TODO]

SO_SECURITY_ENCRYPTION_TRANSPORT -> Integer[permalink][rdoc][edit]

[TODO]

SO_SNDBUF -> Integer[permalink][rdoc][edit]

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][edit]

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][edit]

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][edit]

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][edit]

[TODO]

Receive nanosecond timestamp with datagrams (timespec)。

[SEE_ALSO] Socket::Constants::SO_TIMESTAMP, Socket::AncillaryData#timestamp

SO_TYPE -> Integer[permalink][rdoc][edit]

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][edit]

[TODO]

Bypass hardware when possible。

SO_WANTMORE -> Integer[permalink][rdoc][edit]

[TODO]

Give a hint when more data is ready。

SO_WANTOOBFLAG -> Integer[permalink][rdoc][edit]

[TODO]

OOB data is wanted in MSG_FLAG on receive。

TCP_CORK -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] tcp(7linux)

TCP_DEFER_ACCEPT -> Integer[permalink][rdoc][edit]

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][edit]

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

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

TCP_KEEPCNT -> Integer[permalink][rdoc][edit]

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][edit]

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

[SEE_ALSO] tcp(7linux)

TCP_KEEPINTVL -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] tcp(7linux)

TCP_LINGER2 -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] tcp(7linux)

TCP_MAXSEG -> Integer[permalink][rdoc][edit]

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

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

TCP_MD5SIG -> Integer[permalink][rdoc][edit]

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

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

TCP_NODELAY -> Integer[permalink][rdoc][edit]

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][edit]

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

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

TCP_NOPUSH -> Integer[permalink][rdoc][edit]

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][edit]

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

[SEE_ALSO] tcp(7linux)

TCP_SYNCNT -> Integer[permalink][rdoc][edit]

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][edit]

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

[SEE_ALSO] tcp(7linux)

UDP_CORK -> Integer[permalink][rdoc][edit]

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

[SEE_ALSO] udp(7linux)