要約
汎用ソケットクラス。
システムコールレベルから高水準の機能までを提供します。
ソケットオブジェクトを生成する汎用的な方法として Socket.new がありますが、以下のようなより便利なメソッドがあります。
- TCP のクライアントソケット Socket.tcp TCPSocket.open
 - TCP のサーバソケット Socket.tcp_server_loop, Socket.tcp_server_sockets, TCPServer.open
 - UNIX socket のクライアントソケット Socket.unix UNIXSocket.open
 - UNIX socket のサーバソケット Socket.unix_server_loop, Socket.unix_server_socket, UNIXServer.open
 
また、クライアントソケットは Addrinfo#connect で、サーバソケットを Addrinfo#bind や Addrinfo#listen で作ることもできます。
目次
- 特異メソッド
 - 
- accept_loop
 - getaddrinfo
 - gethostbyaddr
 - gethostbyname
 - gethostname
 - getifaddrs
 - getnameinfo
 - getservbyname
 - getservbyport
 - ip_address_list
 - new
 - open
 - pack_sockaddr_in
 - pack_sockaddr_un
 - pair
 - sockaddr_in
 - sockaddr_un
 - 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
 
 - インスタンスメソッド
 - 定数
 - 
- AF_APPLETALK
 - AF_ATM
 - AF_AX25
 - AF_CCITT
 - AF_CHAOS
 - AF_CNT
 - AF_COIP
 - AF_DATAKIT
 - AF_DEC
 - AF_DLI
 - AF_E164
 - AF_ECMA
 - AF_HYLINK
 - AF_IMPLINK
 - AF_INET
 - AF_INET6
 - AF_IPX
 - AF_ISDN
 - AF_ISO
 - AF_LAT
 - AF_LINK
 - AF_LOCAL
 - AF_MAX
 - AF_NATM
 - AF_NDRV
 - AF_NETBIOS
 - AF_NETGRAPH
 - AF_NS
 - AF_OSI
 - AF_PACKET
 - AF_PPP
 - AF_PUP
 - AF_ROUTE
 - AF_SIP
 - AF_SNA
 - AF_SYSTEM
 - AF_UNIX
 - 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
 - IF_NAMESIZE
 - IFF_802_1Q_VLAN
 - IFF_ALLMULTI
 - IFF_ALTPHYS
 - IFF_AUTOMEDIA
 - IFF_BONDING
 - IFF_BRIDGE_PORT
 - IFF_BROADCAST
 - IFF_CANTCHANGE
 - IFF_CANTCONFIG
 - IFF_DEBUG
 - IFF_DISABLE_NETPOLL
 - IFF_DONT_BRIDGE
 - IFF_DORMANT
 - IFF_DRV_OACTIVE
 - IFF_DRV_RUNNING
 - IFF_DYING
 - IFF_DYNAMIC
 - IFF_EBRIDGE
 - IFF_ECHO
 - IFF_ISATAP
 - IFF_LINK0
 - IFF_LINK1
 - IFF_LINK2
 - IFF_LIVE_ADDR_CHANGE
 - IFF_LOOPBACK
 - IFF_LOWER_UP
 - IFF_MACVLAN_PORT
 - IFF_MASTER
 - IFF_MASTER_8023AD
 - IFF_MASTER_ALB
 - IFF_MASTER_ARPMON
 - IFF_MONITOR
 - IFF_MULTICAST
 - IFF_NOARP
 - IFF_NOTRAILERS
 - IFF_OACTIVE
 - IFF_OVS_DATAPATH
 - IFF_POINTOPOINT
 - IFF_PORTSEL
 - IFF_PPROMISC
 - IFF_PROMISC
 - IFF_RENAMING
 - IFF_ROUTE
 - IFF_RUNNING
 - IFF_SIMPLEX
 - IFF_SLAVE
 - IFF_SLAVE_INACTIVE
 - IFF_SLAVE_NEEDARP
 - IFF_SMART
 - IFF_STATICARP
 - IFF_SUPP_NOFCS
 - IFF_TEAM_PORT
 - IFF_TX_SKB_SHARING
 - IFF_UNICAST_FLT
 - IFF_UP
 - IFF_VOLATILE
 - IFF_WAN_HDLC
 - IFF_XMIT_DST_RELEASE
 - IFNAMSIZ
 - INADDR_ALLHOSTS_GROUP
 - INADDR_ANY
 - INADDR_BROADCAST
 - INADDR_LOOPBACK
 - INADDR_MAX_LOCAL_GROUP
 - INADDR_NONE
 - INADDR_UNSPEC_GROUP
 - INET_ADDRSTRLEN
 - INET6_ADDRSTRLEN
 - 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
 - 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_RTHDR_TYPE_0
 - IPV6_RTHDRDSTOPTS
 - IPV6_TCLASS
 - IPV6_UNICAST_HOPS
 - IPV6_USE_MIN_MTU
 - IPV6_V6ONLY
 - IPX_TYPE
 - 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_APPLETALK
 - PF_ATM
 - PF_AX25
 - PF_CCITT
 - PF_CHAOS
 - PF_CNT
 - PF_COIP
 - PF_DATAKIT
 - PF_DEC
 - PF_DLI
 - PF_ECMA
 - PF_HYLINK
 - PF_IMPLINK
 - PF_INET
 - PF_INET6
 - PF_IPX
 - PF_ISDN
 - PF_ISO
 - PF_KEY
 - PF_LAT
 - PF_LINK
 - PF_LOCAL
 - PF_MAX
 - PF_NATM
 - PF_NDRV
 - PF_NETBIOS
 - PF_NETGRAPH
 - PF_NS
 - PF_OSI
 - PF_PACKET
 - PF_PIP
 - PF_PPP
 - PF_PUP
 - PF_ROUTE
 - PF_RTIP
 - PF_SIP
 - PF_SNA
 - PF_SYSTEM
 - PF_UNIX
 - PF_UNSPEC
 - PF_XTP
 - SCM_BINTIME
 - SCM_CREDENTIALS
 - SCM_CREDS
 - SCM_RIGHTS
 - SCM_TIMESTAMP
 - SCM_TIMESTAMPNS
 - SCM_UCRED
 - SHUT_RD
 - SHUT_RDWR
 - SHUT_WR
 - 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_NO_CHECK
 - SO_NOSIGPIPE
 - 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
 - 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
 - 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
 
 
継承しているメソッド
- BasicSocketから継承しているメソッド
 - IOから継承しているメソッド
 - 
  
- <<
 - advise
 - autoclose=
 - autoclose?
 - binmode
 - binmode?
 - bytes
 - chars
 - clone
 - close
 - close_on_exec=
 - close_on_exec?
 - close_read
 - close_write
 - closed?
 - codepoints
 - dup
 - each
 - each_byte
 - each_char
 - each_codepoint
 - each_line
 - eof
 - eof?
 - external_encoding
 - fcntl
 - fdatasync
 - fileno
 - flush
 - fsync
 - getbyte
 - getc
 - gets
 - internal_encoding
 - ioctl
 - isatty
 - lineno
 - lineno=
 - lines
 - pid
 - pos
 - pos=
 - pread
 - printf
 - putc
 - puts
 - pwrite
 - read
 - read_nonblock
 - readbyte
 - readchar
 - readline
 - readlines
 - readpartial
 - reopen
 - rewind
 - seek
 - set_encoding
 - stat
 - sync
 - sync=
 - sysread
 - sysseek
 - syswrite
 - tell
 - to_i
 - to_io
 - tty?
 - ungetbyte
 - ungetc
 - write
 - write_nonblock
 
 - Enumerableから継承しているメソッド
 - 
  
- all?
 - any?
 - chain
 - chunk
 - chunk_while
 - collect
 - collect_concat
 - count
 - cycle
 - detect
 - drop
 - drop_while
 - each_cons
 - each_entry
 - each_slice
 - each_with_index
 - each_with_object
 - entries
 - filter
 - find
 - find_all
 - find_index
 - first
 - flat_map
 - grep
 - grep_v
 - group_by
 - include?
 - inject
 - lazy
 - map
 - max
 - max_by
 - member?
 - min
 - min_by
 - minmax
 - minmax_by
 - none?
 - one?
 - partition
 - reduce
 - reject
 - reverse_each
 - select
 - slice_after
 - slice_before
 - slice_when
 - sort
 - sort_by
 - sum
 - take
 - take_while
 - to_a
 - to_h
 - uniq
 - zip
 
 
特異メソッド
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
 
必須引数について
必須引数の意味は以下の通りです。
- nodename - ホスト名 (socket/ホスト指定形式を参照)
 - servname - サービス名 (socket/サービス指定形式を参照)
 
省略可能な引数について
残りの引数は省略可能です。
- 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| ...} -> objecttcp_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| ... } -> objectudp_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::WaitWritable が Object#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 -> IntegerPF_ISO -> IntegerPF_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 -> IntegerPF_LOCAL -> IntegerPF_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)