種類
- 定数 (369)
- 特異メソッド (27)
- インスタンスメソッド (8)
ライブラリ
- socket (404)
キーワード
-
AF
_ APPLETALK (1) -
AF
_ ATM (1) -
AF
_ AX25 (1) -
AF
_ CCITT (1) -
AF
_ CHAOS (1) -
AF
_ CNT (1) -
AF
_ COIP (1) -
AF
_ DATAKIT (1) -
AF
_ DEC (1) -
AF
_ DLI (1) -
AF
_ E164 (1) -
AF
_ ECMA (1) -
AF
_ HYLINK (1) -
AF
_ IMPLINK (1) -
AF
_ INET (1) -
AF
_ INET6 (1) -
AF
_ IPX (1) -
AF
_ ISDN (1) -
AF
_ ISO (1) -
AF
_ LAT (1) -
AF
_ LINK (1) -
AF
_ LOCAL (1) -
AF
_ MAX (1) -
AF
_ NATM (1) -
AF
_ NDRV (1) -
AF
_ NETBIOS (1) -
AF
_ NETGRAPH (1) -
AF
_ NS (1) -
AF
_ OSI (1) -
AF
_ PACKET (1) -
AF
_ PPP (1) -
AF
_ PUP (1) -
AF
_ ROUTE (1) -
AF
_ SIP (1) -
AF
_ SNA (1) -
AF
_ SYSTEM (1) -
AF
_ UNIX (1) -
AF
_ UNSPEC (1) -
AI
_ ADDRCONFIG (1) -
AI
_ ALL (1) -
AI
_ CANONNAME (1) -
AI
_ DEFAULT (1) -
AI
_ MASK (1) -
AI
_ NUMERICHOST (1) -
AI
_ NUMERICSERV (1) -
AI
_ PASSIVE (1) -
AI
_ V4MAPPED (1) -
AI
_ V4MAPPED _ CFG (1) -
EAI
_ ADDRFAMILY (1) -
EAI
_ AGAIN (1) -
EAI
_ BADFLAGS (1) -
EAI
_ BADHINTS (1) -
EAI
_ FAIL (1) -
EAI
_ FAMILY (1) -
EAI
_ MAX (1) -
EAI
_ MEMORY (1) -
EAI
_ NODATA (1) -
EAI
_ NONAME (1) -
EAI
_ OVERFLOW (1) -
EAI
_ PROTOCOL (1) -
EAI
_ SERVICE (1) -
EAI
_ SOCKTYPE (1) -
EAI
_ SYSTEM (1) -
IFF
_ 802 _ 1Q _ VLAN (1) -
IFF
_ BONDING (1) -
IFF
_ CANTCHANGE (1) -
IFF
_ CANTCONFIG (1) -
IFF
_ DISABLE _ NETPOLL (1) -
IFF
_ DONT _ BRIDGE (1) -
IFF
_ DORMANT (1) -
IFF
_ DRV _ RUNNING (1) -
IFF
_ DYING (1) -
IFF
_ DYNAMIC (1) -
IFF
_ LINK0 (1) -
IFF
_ LINK1 (1) -
IFF
_ LINK2 (1) -
IFF
_ LIVE _ ADDR _ CHANGE (1) -
IFF
_ MACVLAN _ PORT (1) -
IFF
_ MASTER _ ARPMON (1) -
IFF
_ MONITOR (1) -
IFF
_ NOARP (1) -
IFF
_ NOTRAILERS (1) -
IFF
_ POINTOPOINT (1) -
IFF
_ RENAMING (1) -
IFF
_ RUNNING (1) -
IFF
_ SLAVE _ INACTIVE (1) -
IFF
_ SLAVE _ NEEDARP (1) -
IFF
_ SUPP _ NOFCS (1) -
IFF
_ TX _ SKB _ SHARING (1) -
IFF
_ UNICAST _ FLT (1) -
IFF
_ WAN _ HDLC (1) - IFNAMSIZ (1)
-
IF
_ NAMESIZE (1) -
INADDR
_ ALLHOSTS _ GROUP (1) -
INADDR
_ ANY (1) -
INADDR
_ BROADCAST (1) -
INADDR
_ LOOPBACK (1) -
INADDR
_ MAX _ LOCAL _ GROUP (1) -
INADDR
_ NONE (1) -
INADDR
_ UNSPEC _ GROUP (1) -
INET6
_ ADDRSTRLEN (1) -
INET
_ ADDRSTRLEN (1) -
IPPORT
_ RESERVED (1) -
IPPORT
_ USERRESERVED (1) -
IPPROTO
_ AH (1) -
IPPROTO
_ BIP (1) -
IPPROTO
_ DSTOPTS (1) -
IPPROTO
_ EGP (1) -
IPPROTO
_ EON (1) -
IPPROTO
_ ESP (1) -
IPPROTO
_ FRAGMENT (1) -
IPPROTO
_ GGP (1) -
IPPROTO
_ HELLO (1) -
IPPROTO
_ HOPOPTS (1) -
IPPROTO
_ ICMP (1) -
IPPROTO
_ ICMPV6 (1) -
IPPROTO
_ IDP (1) -
IPPROTO
_ IGMP (1) -
IPPROTO
_ IP (1) -
IPPROTO
_ IPV6 (1) -
IPPROTO
_ MAX (1) -
IPPROTO
_ ND (1) -
IPPROTO
_ NONE (1) -
IPPROTO
_ PUP (1) -
IPPROTO
_ RAW (1) -
IPPROTO
_ ROUTING (1) -
IPPROTO
_ TCP (1) -
IPPROTO
_ TP (1) -
IPPROTO
_ UDP (1) -
IPPROTO
_ XTP (1) -
IPV6
_ CHECKSUM (1) -
IPV6
_ DONTFRAG (1) -
IPV6
_ DSTOPTS (1) -
IPV6
_ HOPLIMIT (1) -
IPV6
_ HOPOPTS (1) -
IPV6
_ JOIN _ GROUP (1) -
IPV6
_ LEAVE _ GROUP (1) -
IPV6
_ MULTICAST _ HOPS (1) -
IPV6
_ MULTICAST _ IF (1) -
IPV6
_ MULTICAST _ LOOP (1) -
IPV6
_ NEXTHOP (1) -
IPV6
_ PATHMTU (1) -
IPV6
_ PKTINFO (1) -
IPV6
_ RECVDSTOPTS (1) -
IPV6
_ RECVHOPLIMIT (1) -
IPV6
_ RECVHOPOPTS (1) -
IPV6
_ RECVPATHMTU (1) -
IPV6
_ RECVPKTINFO (1) -
IPV6
_ RECVRTHDR (1) -
IPV6
_ RECVTCLASS (1) -
IPV6
_ RTHDR (1) -
IPV6
_ RTHDRDSTOPTS (1) -
IPV6
_ RTHDR _ TYPE _ 0 (1) -
IPV6
_ TCLASS (1) -
IPV6
_ UNICAST _ HOPS (1) -
IPV6
_ USE _ MIN _ MTU (1) -
IPV6
_ V6ONLY (1) -
IPX
_ TYPE (1) -
IP
_ ADD _ MEMBERSHIP (1) -
IP
_ ADD _ SOURCE _ MEMBERSHIP (1) -
IP
_ BLOCK _ SOURCE (1) -
IP
_ DEFAULT _ MULTICAST _ LOOP (1) -
IP
_ DEFAULT _ MULTICAST _ TTL (1) -
IP
_ DONTFRAG (1) -
IP
_ DROP _ MEMBERSHIP (1) -
IP
_ DROP _ SOURCE _ MEMBERSHIP (1) -
IP
_ FREEBIND (1) -
IP
_ HDRINCL (1) -
IP
_ IPSEC _ POLICY (1) -
IP
_ MAX _ MEMBERSHIPS (1) -
IP
_ MINTTL (1) -
IP
_ MSFILTER (1) -
IP
_ MTU (1) -
IP
_ MTU _ DISCOVER (1) -
IP
_ MULTICAST _ IF (1) -
IP
_ MULTICAST _ LOOP (1) -
IP
_ MULTICAST _ TTL (1) -
IP
_ ONESBCAST (1) -
IP
_ OPTIONS (1) -
IP
_ PASSSEC (1) -
IP
_ PKTINFO (1) -
IP
_ PKTOPTIONS (1) -
IP
_ PMTUDISC _ DO (1) -
IP
_ PMTUDISC _ DONT (1) -
IP
_ PMTUDISC _ WANT (1) -
IP
_ PORTRANGE (1) -
IP
_ RECVDSTADDR (1) -
IP
_ RECVERR (1) -
IP
_ RECVIF (1) -
IP
_ RECVOPTS (1) -
IP
_ RECVRETOPTS (1) -
IP
_ RECVSLLA (1) -
IP
_ RECVTOS (1) -
IP
_ RECVTTL (1) -
IP
_ RETOPTS (1) -
IP
_ ROUTER _ ALERT (1) -
IP
_ SENDSRCADDR (1) -
IP
_ TOS (1) -
IP
_ TTL (1) -
IP
_ UNBLOCK _ SOURCE (1) -
IP
_ XFRM _ POLICY (1) -
LOCAL
_ CONNWAIT (1) -
LOCAL
_ CREDS (1) -
LOCAL
_ PEERCRED (1) -
MCAST
_ BLOCK _ SOURCE (1) -
MCAST
_ EXCLUDE (1) -
MCAST
_ INCLUDE (1) -
MCAST
_ JOIN _ GROUP (1) -
MCAST
_ JOIN _ SOURCE _ GROUP (1) -
MCAST
_ LEAVE _ GROUP (1) -
MCAST
_ LEAVE _ SOURCE _ GROUP (1) -
MCAST
_ MSFILTER (1) -
MCAST
_ UNBLOCK _ SOURCE (1) -
MSG
_ COMPAT (1) -
MSG
_ CONFIRM (1) -
MSG
_ CTRUNC (1) -
MSG
_ DONTROUTE (1) -
MSG
_ DONTWAIT (1) -
MSG
_ EOF (1) -
MSG
_ EOR (1) -
MSG
_ ERRQUEUE (1) -
MSG
_ FIN (1) -
MSG
_ FLUSH (1) -
MSG
_ HAVEMORE (1) -
MSG
_ HOLD (1) -
MSG
_ MORE (1) -
MSG
_ NOSIGNAL (1) -
MSG
_ OOB (1) -
MSG
_ PEEK (1) -
MSG
_ PROXY (1) -
MSG
_ RCVMORE (1) -
MSG
_ RST (1) -
MSG
_ SEND (1) -
MSG
_ SYN (1) -
MSG
_ TRUNC (1) -
MSG
_ WAITALL (1) -
NI
_ DGRAM (1) -
NI
_ MAXHOST (1) -
NI
_ MAXSERV (1) -
NI
_ NAMEREQD (1) -
NI
_ NOFQDN (1) -
NI
_ NUMERICHOST (1) -
NI
_ NUMERICSERV (1) -
PF
_ APPLETALK (1) -
PF
_ ATM (1) -
PF
_ AX25 (1) -
PF
_ CCITT (1) -
PF
_ CHAOS (1) -
PF
_ CNT (1) -
PF
_ COIP (1) -
PF
_ DATAKIT (1) -
PF
_ DEC (1) -
PF
_ DLI (1) -
PF
_ ECMA (1) -
PF
_ HYLINK (1) -
PF
_ IMPLINK (1) -
PF
_ INET (1) -
PF
_ INET6 (1) -
PF
_ IPX (1) -
PF
_ ISDN (1) -
PF
_ ISO (1) -
PF
_ KEY (1) -
PF
_ LAT (1) -
PF
_ LINK (1) -
PF
_ LOCAL (1) -
PF
_ MAX (1) -
PF
_ NATM (1) -
PF
_ NDRV (1) -
PF
_ NETBIOS (1) -
PF
_ NETGRAPH (1) -
PF
_ NS (1) -
PF
_ OSI (1) -
PF
_ PACKET (1) -
PF
_ PIP (1) -
PF
_ PPP (1) -
PF
_ PUP (1) -
PF
_ ROUTE (1) -
PF
_ RTIP (1) -
PF
_ SIP (1) -
PF
_ SNA (1) -
PF
_ SYSTEM (1) -
PF
_ UNIX (1) -
PF
_ UNSPEC (1) -
PF
_ XTP (1) -
SCM
_ BINTIME (1) -
SCM
_ CREDENTIALS (1) -
SCM
_ CREDS (1) -
SCM
_ RIGHTS (1) -
SCM
_ TIMESTAMP (1) -
SCM
_ TIMESTAMPNS (1) -
SCM
_ UCRED (1) -
SHUT
_ RD (1) -
SHUT
_ RDWR (1) -
SHUT
_ WR (1) -
SOCK
_ DGRAM (1) -
SOCK
_ PACKET (1) -
SOCK
_ RAW (1) -
SOCK
_ RDM (1) -
SOCK
_ SEQPACKET (1) -
SOCK
_ STREAM (1) -
SOL
_ ATALK (1) -
SOL
_ AX25 (1) -
SOL
_ IP (1) -
SOL
_ IPX (1) -
SOL
_ SOCKET (1) -
SOL
_ TCP (1) -
SOL
_ UDP (1) - SOMAXCONN (1)
-
SOPRI
_ BACKGROUND (1) -
SOPRI
_ INTERACTIVE (1) -
SOPRI
_ NORMAL (1) -
SO
_ ACCEPTCONN (1) -
SO
_ ACCEPTFILTER (1) -
SO
_ ALLZONES (1) -
SO
_ ATTACH _ FILTER (1) -
SO
_ BINDTODEVICE (1) -
SO
_ BINTIME (1) -
SO
_ BROADCAST (1) -
SO
_ DEBUG (1) -
SO
_ DETACH _ FILTER (1) -
SO
_ DONTROUTE (1) -
SO
_ DONTTRUNC (1) -
SO
_ ERROR (1) -
SO
_ KEEPALIVE (1) -
SO
_ LINGER (1) -
SO
_ MAC _ EXEMPT (1) -
SO
_ NKE (1) -
SO
_ NOSIGPIPE (1) -
SO
_ NO _ CHECK (1) -
SO
_ NREAD (1) -
SO
_ OOBINLINE (1) -
SO
_ PASSCRED (1) -
SO
_ PEERCRED (1) -
SO
_ PEERNAME (1) -
SO
_ PRIORITY (1) -
SO
_ RCVBUF (1) -
SO
_ RCVLOWAT (1) -
SO
_ RCVTIMEO (1) -
SO
_ RECVUCRED (1) -
SO
_ REUSEADDR (1) -
SO
_ REUSEPORT (1) -
SO
_ SECURITY _ AUTHENTICATION (1) -
SO
_ SECURITY _ ENCRYPTION _ NETWORK (1) -
SO
_ SECURITY _ ENCRYPTION _ TRANSPORT (1) -
SO
_ SNDBUF (1) -
SO
_ SNDLOWAT (1) -
SO
_ SNDTIMEO (1) -
SO
_ TIMESTAMP (1) -
SO
_ TIMESTAMPNS (1) -
SO
_ TYPE (1) -
SO
_ USELOOPBACK (1) -
SO
_ WANTMORE (1) -
SO
_ WANTOOBFLAG (1) -
TCP
_ CORK (1) -
TCP
_ DEFER _ ACCEPT (1) -
TCP
_ INFO (1) -
TCP
_ KEEPCNT (1) -
TCP
_ KEEPIDLE (1) -
TCP
_ KEEPINTVL (1) -
TCP
_ LINGER2 (1) -
TCP
_ MAXSEG (1) -
TCP
_ MD5SIG (1) -
TCP
_ NODELAY (1) -
TCP
_ NOOPT (1) -
TCP
_ NOPUSH (1) -
TCP
_ QUICKACK (1) -
TCP
_ SYNCNT (1) -
TCP
_ WINDOW _ CLAMP (1) -
UDP
_ CORK (1) -
accept
_ loop (1) -
accept
_ nonblock (1) - bind (1)
- connect (1)
-
connect
_ nonblock (1) - getaddrinfo (1)
- gethostbyaddr (1)
- gethostbyname (1)
- gethostname (1)
- getnameinfo (1)
- getservbyname (1)
- getservbyport (1)
-
ip
_ address _ list (1) - ipv6only! (1)
- listen (1)
- new (1)
- open (1)
-
pack
_ sockaddr _ in (1) -
pack
_ sockaddr _ un (1) - pair (1)
- recvfrom (1)
-
recvfrom
_ nonblock (1) -
sockaddr
_ in (1) -
sockaddr
_ un (1) - socketpair (1)
- tcp (2)
-
udp
_ server _ loop _ on (1) - unix (2)
-
unix
_ server _ loop (1) -
unix
_ server _ socket (2) -
unpack
_ sockaddr _ in (1) -
unpack
_ sockaddr _ un (1)
検索結果
先頭5件
-
Socket
:: IFF _ POINTOPOINT (36604.0) -
point-to-point link
point-to-point link -
Socket
:: AF _ CNT -> Integer (18604.0) -
@todo Computer Network Technology。 Socket.open の第一引数 domain に使用します。
...@todo
Computer Network Technology。
Socket.open の第一引数 domain に使用します。... -
Socket
:: EAI _ BADHINTS -> Integer (18604.0) -
Invalid value for hints
...Invalid value for hints
getaddrinfo(3), getnameinfo(3) などの
エラーコードです。
対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは
エラーを SocketError に変換するため、この定数は直接は利用しません。... -
Socket
:: IPPROTO _ FRAGMENT -> Integer (18604.0) -
IPv6 fragmentation header。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。
...IPv6 fragmentation header。
BasicSocket#getsockopt, BasicSocket#setsockopt の
level 引数に使用します。
また、Socket.open の protocol 引数に渡す利用法もあります。
@see 2292... -
Socket
:: IPV6 _ DONTFRAG -> Integer (18604.0) -
Don't fragment packets。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
...Don't fragment packets。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see Socket::Constants::IPPROTO_IPV6,
3542... -
Socket
:: IP _ DONTFRAG -> Integer (18604.0) -
Don't fragment packets。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
...Don't fragment packets。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see Socket::Constants::IPPROTO_IP,
ip(4freebsd)... -
Socket
:: IP _ MINTTL -> Integer (18604.0) -
Minimum TTL allowed for received packets。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
...Minimum TTL allowed for received packets。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see Socket::Constants::IPPROTO_IP, ip(4freebsd)... -
Socket
:: IP _ PMTUDISC _ DONT -> Integer (18604.0) -
Never send DF frames。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
...Never send DF frames。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see Socket::Constants::IPPROTO_IP, ip(7linux)... -
Socket
:: IP _ PMTUDISC _ WANT -> Integer (18604.0) -
Use per-route hints。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
...Use per-route hints。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see Socket::Constants::IPPROTO_IP, ip(7linux)... -
Socket
:: MSG _ DONTROUTE -> Integer (18604.0) -
Send without using the routing tables。
...Send without using the routing tables。
BasicSocket#send, BasicSocket#sendmsg の
flags 引数に用います。
@see sys/socket.h(header),
send(2linux)
send(2freebsd)... -
Socket
:: MSG _ DONTWAIT -> Integer (18604.0) -
This message should be non-blocking。
...This message should be non-blocking。
BasicSocket#send, BasicSocket#sendmsg,
BasicSocket#recv, BasicSocket#recvmsg の
flags 引数に用います。
@see send(2linux), recv(2linux),
recv(2freebsd)... -
Socket
:: PF _ CNT -> Integer (18604.0) -
@todo Computer Network Technology。 Socket.open の第一引数 domain に使用します。
...@todo
Computer Network Technology。
Socket.open の第一引数 domain に使用します。... -
Socket
:: SCM _ BINTIME -> Integer (18604.0) -
Timestamp (bintime).
...Timestamp (bintime).
Socket::AncillaryData の type として利用します。
@see Socket::AncillaryData, Socket::AncillaryData#timestamp
BasicSocket#sendmsg, BasicSocket#recvmsg... -
Socket
:: SCM _ CREDENTIALS -> Integer (18604.0) -
The sender's credentials
...The sender's credentials
Socket::AncillaryData の type として利用します。
@see Socket::AncillaryData,
BasicSocket#sendmsg, BasicSocket#recvmsg,
unix(7linux)... -
Socket
:: SOPRI _ INTERACTIVE -> Integer (18604.0) -
@todo Interactive socket priority
...@todo
Interactive socket priority... -
Socket
:: SO _ BINTIME -> Integer (18604.0) -
Timestamp (bintime)。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
...Timestamp (bintime)。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see getsockopt(2freebsd), Socket::Constants::SOL_SOCKET
Socket::Constants::SO_TIMESTAMP,
Socket::AncillaryData#timestamp... -
Socket
:: SO _ DONTROUTE -> Integer (18604.0) -
Send without using the routing tables。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
...Send without using the routing tables。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see sys/socket.h(header), getsockopt(2freebsd),
socket(7linux), Socket::Constants::SOL_SOCKET... -
Socket
:: SO _ DONTTRUNC -> Integer (18604.0) -
@todo Retain unread data
@todo
Retain unread data -
Socket
:: SO _ SECURITY _ AUTHENTICATION -> Integer (18604.0) -
@todo
@todo -
Socket
:: SO _ WANTMORE -> Integer (18604.0) -
@todo Give a hint when more data is ready。
@todo
Give a hint when more data is ready。 -
Socket
:: SO _ WANTOOBFLAG -> Integer (18604.0) -
@todo OOB data is wanted in MSG_FLAG on receive。
@todo
OOB data is wanted in MSG_FLAG on receive。 -
Socket
:: TCP _ KEEPCNT -> Integer (18604.0) -
Maximum number of keepalive probes allowed before dropping a connection。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
...Maximum number of keepalive probes allowed before dropping a connection。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux)... -
Socket
:: TCP _ KEEPINTVL -> Integer (18604.0) -
Time between keepalive probes。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
...Time between keepalive probes。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux)... -
Socket
# connect(server _ sockaddr) -> 0 (18340.0) -
connect(2) でソケットを接続します。
...connect(2) でソケットを接続します。
server_sockaddr は、
lib:socket#pack_string
もしくは Addrinfo オブジェクト
です。
0 を返します。
@param server_sockaddr 接続先アドレス
@raise Errno::EXXX connect(2) がエラーを報告した場合に発生します。......、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.rea... -
Socket
# connect _ nonblock(server _ sockaddr) -> 0 (18340.0) -
ソケットをノンブロッキングモードに設定した後、 connect(2) を呼び出します。
...ソケットをノンブロッキングモードに設定した後、
connect(2) を呼び出します。
引数、返り値は Socket#connect と同じです。
connect が EINPROGRESS エラーを報告した場合、その例外(Errno::EINPROGRESS)
には IO::WaitWritable が Object#extend さ......eb 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 han......dshake 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 接続先アドレス
@raise Errno::EXXX connect(2) がエラーを報告... -
Socket
. pack _ sockaddr _ in(port , host) -> String (18322.0) -
指定したアドレスをlib:socket#pack_string で返します。port は、ポート番号を表す Fixnum あるいは、ポート 番号、サービス名を表す文字列です。
...指定したアドレスをlib:socket#pack_string
で返します。port は、ポート番号を表す Fixnum あるいは、ポート
番号、サービス名を表す文字列です。
@param port ポート番号を表す Fixnum あるいは、ポート番号、サービス名を表す文字......します。
@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\00... -
Socket
. sockaddr _ in(port , host) -> String (18322.0) -
指定したアドレスをlib:socket#pack_string で返します。port は、ポート番号を表す Fixnum あるいは、ポート 番号、サービス名を表す文字列です。
...指定したアドレスをlib:socket#pack_string
で返します。port は、ポート番号を表す Fixnum あるいは、ポート
番号、サービス名を表す文字列です。
@param port ポート番号を表す Fixnum あるいは、ポート番号、サービス名を表す文字......します。
@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\00... -
Socket
# accept _ nonblock -> Array (18304.0) -
ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。
...ソケットをノンブロッキングモードに設定した後、
accept(2) を呼び出します。
引数、返り値は Socket#accept と同じです。
accept(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。... -
Socket
# bind(my _ sockaddr) -> 0 (18304.0) -
ソケットを my_sockaddr に結合します。bind(2) と同じ働きをします。
...ソケットを my_sockaddr に結合します。bind(2)
と同じ働きをします。
@param my_sockaddr ソケットアドレス構造体を pack した文字列lib:socket#pack_stringもしくはAddrinfoオブジェクトを指定します。
@return 0 を返します。... -
Socket
# ipv6only! -> () (18304.0) -
ソケットの IPV6_V6ONLY オプションを有効にします。
ソケットの IPV6_V6ONLY オプションを有効にします。
IPV6_V6ONLY オプションが使えない場合はこのメソッドは何もしません。 -
Socket
# listen(backlog) -> 0 (18304.0) -
listen(2) と同じ働きをします。
listen(2) と同じ働きをします。
0 を返します。
@param backlog 接続を保留できる最大数
@return 0 を返します。 -
Socket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Addrinfo] (18304.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) を呼び出します。
...ソケットをノンブロッキングモードに設定した後、
recvfrom(2) を呼び出します。
引数、返り値は Socket#recvfrom と同じです。
recvfrom(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
Errno::EWOULDBLOCK、Er... -
Socket
. getaddrinfo(nodename , servname , family=nil , socktype=nil , protocol=nil , flags=nil) -> Array (18304.0) -
2553で定義された getaddrinfo() の機能を提供するクラスメソッド。この関数は gethostbyname() や getservbyname() の代わりとして用意されており、 IP のバージョンに依存しないプログラムを書くための標準的な API です。
...名を指定します。 必須引数です。 (lib:socket#host_formatを参照)
@param servname サービス名を指定します。 必須引数です。 (lib:socket#service_formatを参照)
@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)......数に指定する addrinfo 構造体の ai_flags メンバに相当する整数。 Socket::AI_PASSIVEなど。
@return 7つの要素からなるアドレス情報に関する配列を返します。
@raise SocketError getaddrinfo(3)がエラーを返したときに発生する例外です
@see Ad... -
Socket
. gethostbyname(host) -> Array (18304.0) -
ホスト名または IP アドレス(指定方法に関しては lib:socket#host_formatを参照) からホストの情報を返します。
...ホスト名または IP アドレス(指定方法に関しては
lib:socket#host_formatを参照)
からホストの情報を返します。
@param host 文字列でホストを指定します。
@return ホスト情報を含んだ4要素の配列を返します。
=== 返り値のホスト......) ならば
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.gethostby... -
Socket
. gethostname -> String (18304.0) -
システムの標準のホスト名を取得します。
...の標準のホスト名を取得します。
ホストの別名やアドレスなど他の情報を得るには
Socket.getaddrinfo を使ってください。
ただし、これは不可能な場合もあります。
例:
require 'socket'
p Socket.gethostname #=> "helium.ruby-lang.org"... -
Socket
. getnameinfo(sa , flags = 0) -> Array (18304.0) -
2553 で定義された getnameinfo() の機能を提供するク ラスメソッド。 gethostbyaddr() や getservbyport() の代 わりとして用意されています。IPのバージョンに依存しないプログラムを 書くための標準的なAPIです。
...ise SocketError getnameinfo(3) がエラーを起こした場合に生じる例外
@see Addrinfo#getnameinfo
=== 引数 sa について
引数 sa には文字列か配列を与えます。文字列の場合は sockaddr 構造体
のパック文字列を与えます。具体的には BasicSocket#ge......素が4つの場合:
[アドレスファミリー, サービス, 任意, アドレスを表す文字列]
アドレスファミリーには Socket::AF_INET 等の定数の他に文字列
で "AF_INET" もしくは "AF_INET6" もしくは nil が
指定できます。ただしIPv6が使えな......なります。アドレスファミリーに
nil を指定することは Socket::AF_UNSPEC を指定すること
と等価です。
サービス、ホストの指定に関しては lib:socket#service_format、
lib:socket#host_formatを参照してください。
要素が3つの場合でも、... -
Socket
. getservbyname(service , proto = "tcp") -> Integer (18304.0) -
service, protoに対応するポート番号を返 します。protoの省略値は"tcp"です。
service, protoに対応するポート番号を返
します。protoの省略値は"tcp"です。
@param service サービス名を文字列で指定します。例えば、"ftp", "telnet" が相当します。
@param proto プロトコル名を文字列で指定します。省略値は"tcp" です。
@return ポート番号を整数で返します。 -
Socket
. new(domain , type , protocol=0) -> Socket (18304.0) -
新しいソケットを生成します。domain、type、 protocol はインクルードファイルにある定数で指定しま す。ほとんどの定数は Socket::AF_INET のように Socket クラスの定数として定義されています。domain とtype に関しては、"AF_INET", "SOCK_STREAM" のように文字列でも指定できますが、文 字列ですべての機能を指定できる保証はありません。
...します。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_ のどちらの定数を使用するかについては混乱......ここでは AF_ を使用しています。
@param domain 例えば、<sys/socket.h> のようなインクルードファイルに定義されている定数を指定します。
@param type 例えば、<sys/socket.h> のようなインクルードファイルに定義されている定数を... -
Socket
. open(domain , type , protocol=0) -> Socket (18304.0) -
新しいソケットを生成します。domain、type、 protocol はインクルードファイルにある定数で指定しま す。ほとんどの定数は Socket::AF_INET のように Socket クラスの定数として定義されています。domain とtype に関しては、"AF_INET", "SOCK_STREAM" のように文字列でも指定できますが、文 字列ですべての機能を指定できる保証はありません。
...します。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_ のどちらの定数を使用するかについては混乱......ここでは AF_ を使用しています。
@param domain 例えば、<sys/socket.h> のようなインクルードファイルに定義されている定数を指定します。
@param type 例えば、<sys/socket.h> のようなインクルードファイルに定義されている定数を... -
Socket
. pack _ sockaddr _ un(path) -> String (18304.0) -
指定したアドレスをlib:socket#pack_string で返します。
...指定したアドレスをlib:socket#pack_string
で返します。
@param path パスを文字列で指定します。
例:
require 'socket'
p Socket.sockaddr_un("/tmp/.X11-unix/X0")
=> "\001\000/tmp/.X11-unix/X0\000...."... -
Socket
. sockaddr _ un(path) -> String (18304.0) -
指定したアドレスをlib:socket#pack_string で返します。
...指定したアドレスをlib:socket#pack_string
で返します。
@param path パスを文字列で指定します。
例:
require 'socket'
p Socket.sockaddr_un("/tmp/.X11-unix/X0")
=> "\001\000/tmp/.X11-unix/X0\000...."... -
Socket
. udp _ server _ loop _ on(sockets) {|msg , msg _ src| . . . } -> () (18304.0) -
sockets (UDP のソケット)に対し、通信を待ち受けます。
...
sockets (UDP のソケット)に対し、通信を待ち受けます。
Socket.udp_server_sockets の返り値がこれの引数に適切です。
ソケットからメッセージを受け取るたびにブロックを呼び出します。
ブロックに渡される引数は msg と msg_src の......つで、
msg は受け取ったメッセージ文字列で、 msg_src は
通信相手の Socket::UDPSource オブジェクトです。
無限ループ構造になっています。
@param sockets 通信を待ち受けるソケットの配列
@see Socket.udp_server_recv, Socket.udp_server_loop... -
Socket
. unix(path) -> Socket (18304.0) -
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
}... -
Socket
. unix(path) {|sock| . . . } -> object (18304.0) -
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
}... -
Socket
. unix _ server _ loop(path) {|socket , client _ addrinfo| . . . } -> () (18304.0) -
Unix サーバソケットを生成し、 新しい接続を受け入れるごとにブロックを呼び出します。
...全です。
つまり、 /tmp/malicious-users-directory/socket という名前のパスは
使うべきではありません。
/tmp にスティッキービットが立っている場合、/tmp/socket や
/tmp/your-private-directory/socket というパス名は安全と考えて良いでしょう... -
Socket
. unix _ server _ socket(path) -> Socket (18304.0) -
Unix サーバソケットを生成します。
...ます。
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_a... -
Socket
. unix _ server _ socket(path) {|sock| . . . } -> object (18304.0) -
Unix サーバソケットを生成します。
...ます。
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_a... -
Socket
. unpack _ sockaddr _ in(sockaddr) -> Array (18304.0) -
lib:socket#pack_stringを unpack したアドレスを返します。返される値は [port, ipaddr] の配列です。
...:socket#pack_stringを
unpack したアドレスを返します。返される値は [port, ipaddr]
の配列です。
@param sockaddr ソケットアドレス構造体を pack した文字列lib:socket#pack_stringを指定します。
例:
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"]... -
Socket
. unpack _ sockaddr _ un(sockaddr) -> String (18304.0) -
lib:socket#pack_stringを unpack したソケットパス名を返します。
...lib:socket#pack_stringを
unpack したソケットパス名を返します。
@param sockaddr ソケットアドレス構造体を pack した文字列lib:socket#pack_stringを指定します。
例:
require 'socket'
p Socket.unpack_sockaddr_un(Socket.sockaddr_un("/tmp/.X11-unix/X0"))
=>... -
Socket
:: AF _ HYLINK -> Integer (18304.0) -
@todo NSC Hyperchannel。 Socket.open の第一引数 domain に使用します。
...@todo
NSC Hyperchannel。
Socket.open の第一引数 domain に使用します。... -
Socket
:: AF _ IMPLINK -> Integer (18304.0) -
@todo ARPANET IMP。 Socket.open の第一引数 domain に使用します。
...@todo
ARPANET IMP。
Socket.open の第一引数 domain に使用します。... -
Socket
:: AF _ INET -> Integer (18304.0) -
IPv4。 Socket.open の第一引数 domain に使用します。
...IPv4。
Socket.open の第一引数 domain に使用します。
@see sys/socket.h(header), socket(2freebsd), ip(7linux)... -
Socket
:: AF _ INET6 -> Integer (18304.0) -
IPv6。 Socket.open の第一引数 domain に使用します。
...IPv6。
Socket.open の第一引数 domain に使用します。
@see sys/socket.h(header), socket(2freebsd), ipv6(7linux)... -
Socket
:: AF _ ISDN -> Integer (18304.0) -
@todo Integrated Services Digital Network。 Socket.open の第一引数 domain に使用します。
...@todo
Integrated Services Digital Network。
Socket.open の第一引数 domain に使用します。... -
Socket
:: AF _ LINK -> Integer (18304.0) -
@todo Link layer interface。 Socket.open の第一引数 domain に使用します。
...@todo
Link layer interface。
Socket.open の第一引数 domain に使用します。... -
Socket
:: AF _ NATM -> Integer (18304.0) -
@todo Native ATM access。 Socket.open の第一引数 domain に使用します。
...@todo
Native ATM access。
Socket.open の第一引数 domain に使用します。... -
Socket
:: AF _ NDRV -> Integer (18304.0) -
@todo Network driver raw access。 Socket.open の第一引数 domain に使用します。
...@todo
Network driver raw access。
Socket.open の第一引数 domain に使用します。... -
Socket
:: AF _ NETBIOS -> Integer (18304.0) -
@todo NetBIOS。 Socket.open の第一引数 domain に使用します。
...@todo
NetBIOS。
Socket.open の第一引数 domain に使用します。... -
Socket
:: AF _ NETGRAPH -> Integer (18304.0) -
Netgraph sockets。 Socket.open の第一引数 domain に使用します。
...Netgraph sockets。
Socket.open の第一引数 domain に使用します。
@see socket(2freebsd)... -
Socket
:: AF _ NS -> Integer (18304.0) -
@todo XEROX NS protocol。 Socket.open の第一引数 domain に使用します。
...@todo
XEROX NS protocol。
Socket.open の第一引数 domain に使用します。... -
Socket
:: AF _ SNA -> Integer (18304.0) -
@todo IBM SNA protocol。 Socket.open の第一引数 domain に使用します。
...@todo
IBM SNA protocol。
Socket.open の第一引数 domain に使用します。... -
Socket
:: AF _ UNSPEC -> Integer (18304.0) -
アドレスファミリー不定。
...アドレスファミリー不定。
@see Socket.open, sys/socket.h(header)... -
Socket
:: AI _ ADDRCONFIG -> Integer (18304.0) -
Accept only if any address is assigned。
...Accept only if any address is assigned。
Socket.getaddrinfo, Addrinfo.getaddrinfo の引数 flags に渡す
定数です。
@see getaddrinfo(3)... -
Socket
:: AI _ CANONNAME -> Integer (18304.0) -
Fill in the canonical name。
...Fill in the canonical name。
Socket.getaddrinfo, Addrinfo.getaddrinfo の引数 flags に渡す
定数です。
@see getaddrinfo(3)... -
Socket
:: AI _ NUMERICHOST -> Integer (18304.0) -
Prevent host name resolution。
...Prevent host name resolution。
Socket.getaddrinfo, Addrinfo.getaddrinfo の引数 flags に渡す
定数です。
@see getaddrinfo(3)... -
Socket
:: AI _ NUMERICSERV -> Integer (18304.0) -
Prevent server name resolution。
...Prevent server name resolution。
Socket.getaddrinfo, Addrinfo.getaddrinfo の引数 flags に渡す
定数です。
@see getaddrinfo(3)... -
Socket
:: EAI _ AGAIN -> Integer (18304.0) -
Temporary failure in name resolution
...orary failure in name resolution
getaddrinfo(3), getnameinfo(3) などの
エラーコードです。
対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは
エラーを SocketError に変換するため、この定数は直接は利用しません。
@see getaddrinfo(3linux), gai_strerro... -
Socket
:: EAI _ NODATA -> Integer (18304.0) -
No address associated with hostname
...No address associated with hostname
getaddrinfo(3), getnameinfo(3) などの
エラーコードです。
対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは
エラーを SocketError に変換するため、この定数は直接は利用しません。
@see getaddrinfo(3linux)... -
Socket
:: EAI _ NONAME -> Integer (18304.0) -
Hostname nor servname, or not known
...tname nor servname, or not known
getaddrinfo(3), getnameinfo(3) などの
エラーコードです。
対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは
エラーを SocketError に変換するため、この定数は直接は利用しません。
@see getaddrinfo(3linux), gai_strerro... -
Socket
:: IFF _ 802 _ 1Q _ VLAN (18304.0) -
802.1Q VLAN device
802.1Q VLAN device -
Socket
:: IFF _ BONDING (18304.0) -
bonding master or slave
bonding master or slave -
Socket
:: IFF _ CANTCHANGE (18304.0) -
flags not changeable
flags not changeable -
Socket
:: IFF _ CANTCONFIG (18304.0) -
unconfigurable using ioctl(2)
unconfigurable using ioctl(2) -
Socket
:: IFF _ DISABLE _ NETPOLL (18304.0) -
disable netpoll at run-time
disable netpoll at run-time -
Socket
:: IFF _ DONT _ BRIDGE (18304.0) -
disallow bridging this ether dev
disallow bridging this ether dev -
Socket
:: IFF _ DORMANT (18304.0) -
driver signals dormant
driver signals dormant -
Socket
:: IFF _ DRV _ RUNNING (18304.0) -
resources allocated
resources allocated -
Socket
:: IFF _ DYING (18304.0) -
interface is winding down
interface is winding down -
Socket
:: IFF _ DYNAMIC (18304.0) -
dialup device with changing addresses
dialup device with changing addresses -
Socket
:: IFF _ LINK0 (18304.0) -
per link layer defined bit 0
per link layer defined bit 0 -
Socket
:: IFF _ LINK1 (18304.0) -
per link layer defined bit 1
per link layer defined bit 1 -
Socket
:: IFF _ LINK2 (18304.0) -
per link layer defined bit 2
per link layer defined bit 2 -
Socket
:: IFF _ LIVE _ ADDR _ CHANGE (18304.0) -
hardware address change when it's running
hardware address change when it's running -
Socket
:: IFF _ MACVLAN _ PORT (18304.0) -
device used as macvlan port
device used as macvlan port -
Socket
:: IFF _ MASTER _ ARPMON (18304.0) -
bonding master, ARP mon in use
bonding master, ARP mon in use -
Socket
:: IFF _ MONITOR (18304.0) -
user-requested monitor mode
user-requested monitor mode -
Socket
:: IFF _ NOARP (18304.0) -
no address resolution protocol
no address resolution protocol -
Socket
:: IFF _ NOTRAILERS (18304.0) -
avoid use of trailers
avoid use of trailers -
Socket
:: IFF _ RENAMING (18304.0) -
interface is being renamed
interface is being renamed -
Socket
:: IFF _ RUNNING (18304.0) -
resources allocated
resources allocated -
Socket
:: IFF _ SLAVE _ INACTIVE (18304.0) -
bonding slave not the curr. active
bonding slave not the curr. active -
Socket
:: IFF _ SLAVE _ NEEDARP (18304.0) -
need ARPs for validation
need ARPs for validation -
Socket
:: IFF _ SUPP _ NOFCS (18304.0) -
sending custom FCS
sending custom FCS -
Socket
:: IFF _ TX _ SKB _ SHARING (18304.0) -
sharing skbs on transmit
sharing skbs on transmit -
Socket
:: IFF _ UNICAST _ FLT (18304.0) -
unicast filtering
unicast filtering -
Socket
:: IFF _ WAN _ HDLC (18304.0) -
WAN HDLC device
WAN HDLC device -
Socket
:: IFNAMSIZ -> Integer (18304.0) -
インターフェース名文字列の最大長さ。
インターフェース名文字列の最大長さ。
@see net/if.h(header) -
Socket
:: IF _ NAMESIZE -> Integer (18304.0) -
インターフェース名文字列の最大長さ。
インターフェース名文字列の最大長さ。
@see net/if.h(header) -
Socket
:: INADDR _ ALLHOSTS _ GROUP -> Integer (18304.0) -
Multicast group for all systems on this subset。 IPv4の 244.0.0.1 に対応する整数です。
Multicast group for all systems on this subset。
IPv4の 244.0.0.1 に対応する整数です。
@see http://www.iana.org/assignments/multicast-addresses/multicast-addresses.xml, 5771 -
Socket
:: INADDR _ ANY -> Integer (18304.0) -
A socket bound to INADDR_ANY receives packets from all interfaces and sends from the default IP address。 IPv4アドレスの 0.0.0.0 に対応する整数です。
...A socket bound to INADDR_ANY receives packets from
all interfaces and sends from the default IP address。
IPv4アドレスの 0.0.0.0 に対応する整数です。
@see netinet/in.h(header), ip(7linux), ip(4freebsd)...