種類
- 定数 (798)
- インスタンスメソッド (103)
- 特異メソッド (77)
- クラス (12)
- モジュール (1)
クラス
- Addrinfo (26)
- BasicSocket (22)
- IPSocket (4)
- SOCKSSocket (3)
- Socket (450)
-
Socket
:: AncillaryData (17) -
Socket
:: Ifaddr (9) -
Socket
:: Option (13) -
Socket
:: UDPSource (4) - TCPServer (2)
- TCPSocket (3)
- UDPSocket (8)
- UNIXServer (6)
- UNIXSocket (12)
モジュール
-
Socket
:: Constants (399)
キーワード
-
AF
_ APPLETALK (2) -
AF
_ ATM (2) -
AF
_ AX25 (2) -
AF
_ CCITT (2) -
AF
_ CHAOS (2) -
AF
_ CNT (2) -
AF
_ COIP (2) -
AF
_ DATAKIT (2) -
AF
_ DEC (2) -
AF
_ DLI (2) -
AF
_ E164 (2) -
AF
_ ECMA (2) -
AF
_ HYLINK (2) -
AF
_ IMPLINK (2) -
AF
_ INET (2) -
AF
_ INET6 (2) -
AF
_ IPX (2) -
AF
_ ISDN (2) -
AF
_ ISO (2) -
AF
_ LAT (2) -
AF
_ LINK (2) -
AF
_ LOCAL (2) -
AF
_ MAX (2) -
AF
_ NATM (2) -
AF
_ NDRV (2) -
AF
_ NETBIOS (2) -
AF
_ NETGRAPH (2) -
AF
_ NS (2) -
AF
_ OSI (2) -
AF
_ PACKET (2) -
AF
_ PPP (2) -
AF
_ PUP (2) -
AF
_ ROUTE (2) -
AF
_ SIP (2) -
AF
_ SNA (2) -
AF
_ SYSTEM (2) -
AF
_ UNIX (2) -
AF
_ UNSPEC (2) -
AI
_ ADDRCONFIG (2) -
AI
_ ALL (2) -
AI
_ CANONNAME (2) -
AI
_ DEFAULT (2) -
AI
_ MASK (2) -
AI
_ NUMERICHOST (2) -
AI
_ NUMERICSERV (2) -
AI
_ PASSIVE (2) -
AI
_ V4MAPPED (2) -
AI
_ V4MAPPED _ CFG (2) - AncillaryData (1)
- BasicSocket (1)
- Constants (1)
-
EAI
_ ADDRFAMILY (2) -
EAI
_ AGAIN (2) -
EAI
_ BADFLAGS (2) -
EAI
_ BADHINTS (2) -
EAI
_ FAIL (2) -
EAI
_ FAMILY (2) -
EAI
_ MAX (2) -
EAI
_ MEMORY (2) -
EAI
_ NODATA (2) -
EAI
_ NONAME (2) -
EAI
_ OVERFLOW (2) -
EAI
_ PROTOCOL (2) -
EAI
_ SERVICE (2) -
EAI
_ SOCKTYPE (2) -
EAI
_ SYSTEM (2) -
IFF
_ 802 _ 1Q _ VLAN (2) -
IFF
_ ALLMULTI (2) -
IFF
_ ALTPHYS (2) -
IFF
_ AUTOMEDIA (2) -
IFF
_ BONDING (2) -
IFF
_ BRIDGE _ PORT (2) -
IFF
_ BROADCAST (2) -
IFF
_ CANTCHANGE (2) -
IFF
_ CANTCONFIG (2) -
IFF
_ DEBUG (2) -
IFF
_ DISABLE _ NETPOLL (2) -
IFF
_ DONT _ BRIDGE (2) -
IFF
_ DORMANT (2) -
IFF
_ DRV _ OACTIVE (2) -
IFF
_ DRV _ RUNNING (2) -
IFF
_ DYING (2) -
IFF
_ DYNAMIC (2) -
IFF
_ EBRIDGE (2) -
IFF
_ ECHO (2) -
IFF
_ ISATAP (2) -
IFF
_ LINK0 (2) -
IFF
_ LINK1 (2) -
IFF
_ LINK2 (2) -
IFF
_ LIVE _ ADDR _ CHANGE (2) -
IFF
_ LOOPBACK (2) -
IFF
_ LOWER _ UP (2) -
IFF
_ MACVLAN _ PORT (2) -
IFF
_ MASTER (2) -
IFF
_ MASTER _ 8023AD (2) -
IFF
_ MASTER _ ALB (2) -
IFF
_ MASTER _ ARPMON (2) -
IFF
_ MONITOR (2) -
IFF
_ MULTICAST (2) -
IFF
_ NOARP (2) -
IFF
_ NOTRAILERS (2) -
IFF
_ OACTIVE (2) -
IFF
_ OVS _ DATAPATH (2) -
IFF
_ POINTOPOINT (2) -
IFF
_ PORTSEL (2) -
IFF
_ PPROMISC (2) -
IFF
_ PROMISC (2) -
IFF
_ RENAMING (2) -
IFF
_ ROUTE (2) -
IFF
_ RUNNING (2) -
IFF
_ SIMPLEX (2) -
IFF
_ SLAVE (2) -
IFF
_ SLAVE _ INACTIVE (2) -
IFF
_ SLAVE _ NEEDARP (2) -
IFF
_ SMART (2) -
IFF
_ STATICARP (2) -
IFF
_ SUPP _ NOFCS (2) -
IFF
_ TEAM _ PORT (2) -
IFF
_ TX _ SKB _ SHARING (2) -
IFF
_ UNICAST _ FLT (2) -
IFF
_ UP (2) -
IFF
_ VOLATILE (2) -
IFF
_ WAN _ HDLC (2) -
IFF
_ XMIT _ DST _ RELEASE (2) - IFNAMSIZ (2)
-
IF
_ NAMESIZE (2) -
INADDR
_ ALLHOSTS _ GROUP (2) -
INADDR
_ ANY (2) -
INADDR
_ BROADCAST (2) -
INADDR
_ LOOPBACK (2) -
INADDR
_ MAX _ LOCAL _ GROUP (2) -
INADDR
_ NONE (2) -
INADDR
_ UNSPEC _ GROUP (2) -
INET6
_ ADDRSTRLEN (2) -
INET
_ ADDRSTRLEN (2) -
IPPORT
_ RESERVED (2) -
IPPORT
_ USERRESERVED (2) -
IPPROTO
_ AH (2) -
IPPROTO
_ BIP (2) -
IPPROTO
_ DSTOPTS (2) -
IPPROTO
_ EGP (2) -
IPPROTO
_ EON (2) -
IPPROTO
_ ESP (2) -
IPPROTO
_ FRAGMENT (2) -
IPPROTO
_ GGP (2) -
IPPROTO
_ HELLO (2) -
IPPROTO
_ HOPOPTS (2) -
IPPROTO
_ ICMP (2) -
IPPROTO
_ ICMPV6 (2) -
IPPROTO
_ IDP (2) -
IPPROTO
_ IGMP (2) -
IPPROTO
_ IP (2) -
IPPROTO
_ IPV6 (2) -
IPPROTO
_ MAX (2) -
IPPROTO
_ ND (2) -
IPPROTO
_ NONE (2) -
IPPROTO
_ PUP (2) -
IPPROTO
_ RAW (2) -
IPPROTO
_ ROUTING (2) -
IPPROTO
_ TCP (2) -
IPPROTO
_ TP (2) -
IPPROTO
_ UDP (2) -
IPPROTO
_ XTP (2) - IPSocket (1)
-
IPV6
_ CHECKSUM (2) -
IPV6
_ DONTFRAG (2) -
IPV6
_ DSTOPTS (2) -
IPV6
_ HOPLIMIT (2) -
IPV6
_ HOPOPTS (2) -
IPV6
_ JOIN _ GROUP (2) -
IPV6
_ LEAVE _ GROUP (2) -
IPV6
_ MULTICAST _ HOPS (2) -
IPV6
_ MULTICAST _ IF (2) -
IPV6
_ MULTICAST _ LOOP (2) -
IPV6
_ NEXTHOP (2) -
IPV6
_ PATHMTU (2) -
IPV6
_ PKTINFO (2) -
IPV6
_ RECVDSTOPTS (2) -
IPV6
_ RECVHOPLIMIT (2) -
IPV6
_ RECVHOPOPTS (2) -
IPV6
_ RECVPATHMTU (2) -
IPV6
_ RECVPKTINFO (2) -
IPV6
_ RECVRTHDR (2) -
IPV6
_ RECVTCLASS (2) -
IPV6
_ RTHDR (2) -
IPV6
_ RTHDRDSTOPTS (2) -
IPV6
_ RTHDR _ TYPE _ 0 (2) -
IPV6
_ TCLASS (2) -
IPV6
_ UNICAST _ HOPS (2) -
IPV6
_ USE _ MIN _ MTU (2) -
IPV6
_ V6ONLY (2) -
IPX
_ TYPE (2) -
IP
_ ADD _ MEMBERSHIP (2) -
IP
_ ADD _ SOURCE _ MEMBERSHIP (2) -
IP
_ BLOCK _ SOURCE (2) -
IP
_ DEFAULT _ MULTICAST _ LOOP (2) -
IP
_ DEFAULT _ MULTICAST _ TTL (2) -
IP
_ DONTFRAG (2) -
IP
_ DROP _ MEMBERSHIP (2) -
IP
_ DROP _ SOURCE _ MEMBERSHIP (2) -
IP
_ FREEBIND (2) -
IP
_ HDRINCL (2) -
IP
_ IPSEC _ POLICY (2) -
IP
_ MAX _ MEMBERSHIPS (2) -
IP
_ MINTTL (2) -
IP
_ MSFILTER (2) -
IP
_ MTU (2) -
IP
_ MTU _ DISCOVER (2) -
IP
_ MULTICAST _ IF (2) -
IP
_ MULTICAST _ LOOP (2) -
IP
_ MULTICAST _ TTL (2) -
IP
_ ONESBCAST (2) -
IP
_ OPTIONS (2) -
IP
_ PASSSEC (2) -
IP
_ PKTINFO (2) -
IP
_ PKTOPTIONS (2) -
IP
_ PMTUDISC _ DO (2) -
IP
_ PMTUDISC _ DONT (2) -
IP
_ PMTUDISC _ WANT (2) -
IP
_ PORTRANGE (2) -
IP
_ RECVDSTADDR (2) -
IP
_ RECVERR (2) -
IP
_ RECVIF (2) -
IP
_ RECVOPTS (2) -
IP
_ RECVRETOPTS (2) -
IP
_ RECVSLLA (2) -
IP
_ RECVTOS (2) -
IP
_ RECVTTL (2) -
IP
_ RETOPTS (2) -
IP
_ ROUTER _ ALERT (2) -
IP
_ SENDSRCADDR (2) -
IP
_ TOS (2) -
IP
_ TTL (2) -
IP
_ UNBLOCK _ SOURCE (2) -
IP
_ XFRM _ POLICY (2) - Ifaddr (1)
-
LOCAL
_ CONNWAIT (2) -
LOCAL
_ CREDS (2) -
LOCAL
_ PEERCRED (2) -
MCAST
_ BLOCK _ SOURCE (2) -
MCAST
_ EXCLUDE (2) -
MCAST
_ INCLUDE (2) -
MCAST
_ JOIN _ GROUP (2) -
MCAST
_ JOIN _ SOURCE _ GROUP (2) -
MCAST
_ LEAVE _ GROUP (2) -
MCAST
_ LEAVE _ SOURCE _ GROUP (2) -
MCAST
_ MSFILTER (2) -
MCAST
_ UNBLOCK _ SOURCE (2) -
MSG
_ COMPAT (2) -
MSG
_ CONFIRM (2) -
MSG
_ CTRUNC (2) -
MSG
_ DONTROUTE (2) -
MSG
_ DONTWAIT (2) -
MSG
_ EOF (2) -
MSG
_ EOR (2) -
MSG
_ ERRQUEUE (2) -
MSG
_ FIN (2) -
MSG
_ FLUSH (2) -
MSG
_ HAVEMORE (2) -
MSG
_ HOLD (2) -
MSG
_ MORE (2) -
MSG
_ NOSIGNAL (2) -
MSG
_ OOB (2) -
MSG
_ PEEK (2) -
MSG
_ PROXY (2) -
MSG
_ RCVMORE (2) -
MSG
_ RST (2) -
MSG
_ SEND (2) -
MSG
_ SYN (2) -
MSG
_ TRUNC (2) -
MSG
_ WAITALL (2) -
NI
_ DGRAM (2) -
NI
_ MAXHOST (2) -
NI
_ MAXSERV (2) -
NI
_ NAMEREQD (2) -
NI
_ NOFQDN (2) -
NI
_ NUMERICHOST (2) -
NI
_ NUMERICSERV (2) - Option (1)
-
PF
_ APPLETALK (2) -
PF
_ ATM (2) -
PF
_ AX25 (2) -
PF
_ CCITT (2) -
PF
_ CHAOS (2) -
PF
_ CNT (2) -
PF
_ COIP (2) -
PF
_ DATAKIT (2) -
PF
_ DEC (2) -
PF
_ DLI (2) -
PF
_ ECMA (2) -
PF
_ HYLINK (2) -
PF
_ IMPLINK (2) -
PF
_ INET (2) -
PF
_ INET6 (2) -
PF
_ IPX (2) -
PF
_ ISDN (2) -
PF
_ ISO (2) -
PF
_ KEY (2) -
PF
_ LAT (2) -
PF
_ LINK (2) -
PF
_ LOCAL (2) -
PF
_ MAX (2) -
PF
_ NATM (2) -
PF
_ NDRV (2) -
PF
_ NETBIOS (2) -
PF
_ NETGRAPH (2) -
PF
_ NS (2) -
PF
_ OSI (2) -
PF
_ PACKET (2) -
PF
_ PIP (2) -
PF
_ PPP (2) -
PF
_ PUP (2) -
PF
_ ROUTE (2) -
PF
_ RTIP (2) -
PF
_ SIP (2) -
PF
_ SNA (2) -
PF
_ SYSTEM (2) -
PF
_ UNIX (2) -
PF
_ UNSPEC (2) -
PF
_ XTP (2) -
SCM
_ BINTIME (2) -
SCM
_ CREDENTIALS (2) -
SCM
_ CREDS (2) -
SCM
_ RIGHTS (2) -
SCM
_ TIMESTAMP (2) -
SCM
_ TIMESTAMPNS (2) -
SCM
_ UCRED (2) -
SHUT
_ RD (2) -
SHUT
_ RDWR (2) -
SHUT
_ WR (2) - SOCKSSocket (1)
-
SOCK
_ DGRAM (2) -
SOCK
_ PACKET (2) -
SOCK
_ RAW (2) -
SOCK
_ RDM (2) -
SOCK
_ SEQPACKET (2) -
SOCK
_ STREAM (2) -
SOL
_ ATALK (2) -
SOL
_ AX25 (2) -
SOL
_ IP (2) -
SOL
_ IPX (2) -
SOL
_ SOCKET (2) -
SOL
_ TCP (2) -
SOL
_ UDP (2) - SOMAXCONN (2)
-
SOPRI
_ BACKGROUND (2) -
SOPRI
_ INTERACTIVE (2) -
SOPRI
_ NORMAL (2) -
SO
_ ACCEPTCONN (2) -
SO
_ ACCEPTFILTER (2) -
SO
_ ALLZONES (2) -
SO
_ ATTACH _ FILTER (2) -
SO
_ BINDTODEVICE (2) -
SO
_ BINTIME (2) -
SO
_ BROADCAST (2) -
SO
_ DEBUG (2) -
SO
_ DETACH _ FILTER (2) -
SO
_ DONTROUTE (2) -
SO
_ DONTTRUNC (2) -
SO
_ ERROR (2) -
SO
_ KEEPALIVE (2) -
SO
_ LINGER (2) -
SO
_ MAC _ EXEMPT (2) -
SO
_ NKE (2) -
SO
_ NOSIGPIPE (2) -
SO
_ NO _ CHECK (2) -
SO
_ NREAD (2) -
SO
_ OOBINLINE (2) -
SO
_ PASSCRED (2) -
SO
_ PEERCRED (2) -
SO
_ PEERNAME (2) -
SO
_ PRIORITY (2) -
SO
_ RCVBUF (2) -
SO
_ RCVLOWAT (2) -
SO
_ RCVTIMEO (2) -
SO
_ RECVUCRED (2) -
SO
_ REUSEADDR (2) -
SO
_ REUSEPORT (2) -
SO
_ SECURITY _ AUTHENTICATION (2) -
SO
_ SECURITY _ ENCRYPTION _ NETWORK (2) -
SO
_ SECURITY _ ENCRYPTION _ TRANSPORT (2) -
SO
_ SNDBUF (2) -
SO
_ SNDLOWAT (2) -
SO
_ SNDTIMEO (2) -
SO
_ TIMESTAMP (2) -
SO
_ TIMESTAMPNS (2) -
SO
_ TYPE (2) -
SO
_ USELOOPBACK (2) -
SO
_ WANTMORE (2) -
SO
_ WANTOOBFLAG (2) - Socket (1)
- SocketError (1)
- TCPSocket (1)
-
TCP
_ CORK (2) -
TCP
_ DEFER _ ACCEPT (2) -
TCP
_ INFO (2) -
TCP
_ KEEPCNT (2) -
TCP
_ KEEPIDLE (2) -
TCP
_ KEEPINTVL (2) -
TCP
_ LINGER2 (2) -
TCP
_ MAXSEG (2) -
TCP
_ MD5SIG (2) -
TCP
_ NODELAY (2) -
TCP
_ NOOPT (2) -
TCP
_ NOPUSH (2) -
TCP
_ QUICKACK (2) -
TCP
_ SYNCNT (2) -
TCP
_ WINDOW _ CLAMP (2) - UDPSocket (1)
- UDPSource (1)
-
UDP
_ CORK (2) - UNIXSocket (1)
- accept (3)
-
accept
_ loop (1) -
accept
_ nonblock (3) - addr (3)
- bind (4)
- bool (2)
- broadaddr (1)
- close (1)
-
cmsg
_ is? (1) - connect (4)
-
connect
_ address (1) -
connect
_ from (2) -
connect
_ nonblock (1) -
connect
_ to (2) - data (2)
-
do
_ not _ reverse _ lookup (2) -
do
_ not _ reverse _ lookup= (2) - dstaddr (1)
- family (2)
-
family
_ addrinfo (2) - flags (1)
-
for
_ fd (1) - foreach (2)
- getaddress (1)
- getaddrinfo (2)
- gethostbyaddr (1)
- gethostbyname (2)
- gethostname (1)
- getifaddrs (1)
- getnameinfo (1)
- getpeereid (1)
- getpeername (1)
- getservbyname (1)
- getservbyport (1)
- getsockname (1)
- getsockopt (1)
- ifindex (1)
- inspect (1)
-
inspect
_ sockaddr (1) - int (4)
- ip? (1)
-
ip
_ address _ list (1) -
ip
_ pktinfo (2) - ipv4? (1)
- ipv6? (1)
-
ipv6
_ pktinfo (2) -
ipv6
_ pktinfo _ addr (1) -
ipv6
_ pktinfo _ ifindex (1) -
ipv6
_ to _ ipv4 (1) - ipv6only! (1)
- level (2)
- linger (2)
- listen (3)
-
local
_ address (2) - name (1)
- netmask (1)
- new (12)
- open (8)
- optname (1)
-
pack
_ sockaddr _ in (1) -
pack
_ sockaddr _ un (1) - pair (2)
- path (1)
- peeraddr (2)
- recv (1)
-
recv
_ io (1) -
recv
_ nonblock (1) - recvfrom (3)
-
recvfrom
_ nonblock (2) - recvmsg (1)
-
recvmsg
_ nonblock (1) -
remote
_ address (2) - reply (1)
- send (4)
-
send
_ io (1) - sendmsg (1)
-
sendmsg
_ nonblock (1) - setsockopt (2)
- shutdown (1)
-
sockaddr
_ in (1) -
sockaddr
_ un (1) - socketpair (2)
- socktype (1)
- sysaccept (1)
- tcp (2)
-
tcp
_ server _ loop (2) -
tcp
_ server _ sockets (4) -
to
_ s (1) -
to
_ sockaddr (1) - type (1)
-
udp
_ server _ loop (2) -
udp
_ server _ loop _ on (1) -
udp
_ server _ recv (1) -
udp
_ server _ sockets (4) - unix (3)
- unix? (1)
-
unix
_ path (1) -
unix
_ rights (2) -
unix
_ server _ loop (1) -
unix
_ server _ socket (2) - unpack (1)
-
unpack
_ sockaddr _ in (1) -
unpack
_ sockaddr _ un (1) - vhid (1)
検索結果
先頭5件
-
SOCKSSocket (36007.0)
-
TCPSocket を SOCKS(http://www.sw.nec.co.jp/middle/socks/) 対応したクラスです。
...TCPSocket を SOCKS(http://www.sw.nec.co.jp/middle/socks/) 対応したクラスです。... -
BasicSocket
# setsockopt(socketoption) -> 0 (27733.0) -
ソケットのオプションを設定します。setsockopt(2) を参照してください。
...を設定します。setsockopt(2)
を参照してください。
level, optname には Socket::SOL_SOCKET や Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いることができます。
optval...... Socket::Option で設定値を表現します。
require 'socket'
# 真偽値の場合
#setsockopt could be called like this:
sock.setsockopt(:SOCKET, :REUSEADDR, true)
sock.setsockopt(Socket::SOL_SOCKET,Socket::SO_REUSEADDR, true)
sock.setsockopt(Socket::Option.bool(:INET, :SOCKET,......etsockopt(Socket::IPPROTO_IP, Socket::IP_TTL, 255)
sock.setsockopt(Socket::Option.int(:INET, :IP, :TTL, 255))
# より複雑な場合
optval = IPAddr.new("224.0.0.251").hton +
IPAddr.new(Socket::INADDR_ANY, Socket::AF_INET).hton
sock.setsockopt(Socket::IPPROTO_IP, Socket::IP_ADD_... -
Socket
. unix _ server _ socket(path) -> Socket (27682.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 (27682.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... -
BasicSocket
# getsockopt(level , optname) -> Socket :: Option (27607.0) -
ソケットのオプションを取得します。getsockopt(2) を参照してください。 取得したオプションのデータを Socket::Option で返します。
...ください。
取得したオプションのデータを Socket::Option で返します。
level, optname には Socket::SOL_SOCKET や Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いるこ......@see BasicSocket#setsockopt
例:
require 'socket'
serv = Socket.tcp_server_sockets("", 0)[0]
c = serv.local_address.connect
s = serv.accept
opt = c.getsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY)
# c.getsockopt("TCP", "NODELAY"), なども可能
p opt #=> #<Socket::Option: I......NET TCP NODELAY 0>
p opt.bool #=> false (Nagle アルゴリズム有効)
p opt.unpack("i")[0] #=> 0 (Socket::Option#unpack が互換性のために存在する)
# 整数値の場合は Socket::Option#int を用いる
p c.getsockopt(:IP, :TTL).int #=> 64... -
Socket
. tcp _ server _ sockets(host , port) -> [Socket] (27607.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。
...番号を持ちます。
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 }
#=>......
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 Socket.tcp_server_loop... -
Socket
. tcp _ server _ sockets(host , port) {|sockets| . . . } -> object (27607.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。
...番号を持ちます。
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 }
#=>......
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 Socket.tcp_server_loop... -
Socket
. tcp _ server _ sockets(port) -> [Socket] (27607.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。
...番号を持ちます。
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 }
#=>......
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 Socket.tcp_server_loop... -
Socket
. tcp _ server _ sockets(port) {|sockets| . . . } -> object (27607.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。
...番号を持ちます。
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 }
#=>......
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 Socket.tcp_server_loop... -
Socket
. udp _ server _ sockets(host , port) -> [Sockets] (27607.0) -
UDP で host:port を待ち受けるサーバ側のソケットを作成します。
...はすべて同じ番号を持ちます。
# 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 割り当て... -
Socket
. udp _ server _ sockets(host , port) {|sockets| . . . } -> object (27607.0) -
UDP で host:port を待ち受けるサーバ側のソケットを作成します。
...はすべて同じ番号を持ちます。
# 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 割り当て... -
Socket
. udp _ server _ sockets(port) -> [Sockets] (27607.0) -
UDP で host:port を待ち受けるサーバ側のソケットを作成します。
...はすべて同じ番号を持ちます。
# 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 割り当て... -
Socket
. udp _ server _ sockets(port) {|sockets| . . . } -> object (27607.0) -
UDP で host:port を待ち受けるサーバ側のソケットを作成します。
...はすべて同じ番号を持ちます。
# 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 割り当て... -
Socket
. unpack _ sockaddr _ in(sockaddr) -> Array (27607.0) -
lib:socket#pack_stringを unpack したアドレスを返します。返される値は [port, ipaddr] の配列です。
...lib:socket#pack_stringを
unpack したアドレスを返します。返される値は [port, ipaddr]
の配列です。
@param sockaddr 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 (27607.0) -
lib:socket#pack_stringを unpack したソケットパス名を返します。
...lib:socket#pack_stringを
unpack したソケットパス名を返します。
@param sockaddr lib:socket#pack_stringを指定します。
例:
require 'socket'
p Socket.unpack_sockaddr_un(Socket.sockaddr_un("/tmp/.X11-unix/X0"))
=> "/tmp/.X11-unix/X0"... -
BasicSocket
# setsockopt(level , optname , optval) -> 0 (27433.0) -
ソケットのオプションを設定します。setsockopt(2) を参照してください。
...を設定します。setsockopt(2)
を参照してください。
level, optname には Socket::SOL_SOCKET や Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いることができます。
optval...... Socket::Option で設定値を表現します。
require 'socket'
# 真偽値の場合
#setsockopt could be called like this:
sock.setsockopt(:SOCKET, :REUSEADDR, true)
sock.setsockopt(Socket::SOL_SOCKET,Socket::SO_REUSEADDR, true)
sock.setsockopt(Socket::Option.bool(:INET, :SOCKET,......etsockopt(Socket::IPPROTO_IP, Socket::IP_TTL, 255)
sock.setsockopt(Socket::Option.int(:INET, :IP, :TTL, 255))
# より複雑な場合
optval = IPAddr.new("224.0.0.251").hton +
IPAddr.new(Socket::INADDR_ANY, Socket::AF_INET).hton
sock.setsockopt(Socket::IPPROTO_IP, Socket::IP_ADD_... -
Socket
:: Constants :: SOCK _ DGRAM -> Integer (27310.0) -
データグラム通信。 Socket.open の第二引数 type に使用します。
...データグラム通信。
Socket.open の第二引数 type に使用します。
@see socket(2), Socket.open... -
Socket
:: Constants :: SOCK _ PACKET -> Integer (27310.0) -
デバイスレベルインターフェース。Obsoleteであり使うべきではない。 Socket.open の第二引数 type に使用します。
...デバイスレベルインターフェース。Obsoleteであり使うべきではない。
Socket.open の第二引数 type に使用します。
@see packet(7linux), Socket.open... -
Socket
:: Constants :: SOCK _ RAW -> Integer (27310.0) -
RAW ソケット。 Socket.open の第二引数 type に使用します。
...RAW ソケット。
Socket.open の第二引数 type に使用します。
@see sys/socket.h(header), socket(2linux),
raw(7linux), Socket.open... -
Socket
:: Constants :: SOCK _ RDM -> Integer (27310.0) -
信頼性のあるデータグラム通信。 Socket.open の第二引数 type に使用します。
...信頼性のあるデータグラム通信。
Socket.open の第二引数 type に使用します。
@see socket(2linux), Socket.open... -
Socket
:: Constants :: SOCK _ SEQPACKET -> Integer (27310.0) -
固定最大長を持つストリーム通信。 Socket.open の第二引数 type に使用します。
...固定最大長を持つストリーム通信。
Socket.open の第二引数 type に使用します。
@see Socket.open, socket(2), socket(2linux),
socket(2freebsd)... -
Socket
:: Constants :: SOCK _ STREAM -> Integer (27310.0) -
ストリーム通信。 Socket.open の第二引数 type に使用します。
...ストリーム通信。
Socket.open の第二引数 type に使用します。
@see Socket.open, socket(2), socket(2linux),
socket(2freebsd)... -
Socket
:: SOCK _ DGRAM -> Integer (27310.0) -
データグラム通信。 Socket.open の第二引数 type に使用します。
...データグラム通信。
Socket.open の第二引数 type に使用します。
@see socket(2), Socket.open... -
Socket
:: SOCK _ PACKET -> Integer (27310.0) -
デバイスレベルインターフェース。Obsoleteであり使うべきではない。 Socket.open の第二引数 type に使用します。
...デバイスレベルインターフェース。Obsoleteであり使うべきではない。
Socket.open の第二引数 type に使用します。
@see packet(7linux), Socket.open... -
Socket
:: SOCK _ RAW -> Integer (27310.0) -
RAW ソケット。 Socket.open の第二引数 type に使用します。
...RAW ソケット。
Socket.open の第二引数 type に使用します。
@see sys/socket.h(header), socket(2linux),
raw(7linux), Socket.open... -
Socket
:: SOCK _ RDM -> Integer (27310.0) -
信頼性のあるデータグラム通信。 Socket.open の第二引数 type に使用します。
...信頼性のあるデータグラム通信。
Socket.open の第二引数 type に使用します。
@see socket(2linux), Socket.open... -
Socket
:: SOCK _ SEQPACKET -> Integer (27310.0) -
固定最大長を持つストリーム通信。 Socket.open の第二引数 type に使用します。
...固定最大長を持つストリーム通信。
Socket.open の第二引数 type に使用します。
@see Socket.open, socket(2), socket(2linux),
socket(2freebsd)... -
Socket
:: SOCK _ STREAM -> Integer (27310.0) -
ストリーム通信。 Socket.open の第二引数 type に使用します。
...ストリーム通信。
Socket.open の第二引数 type に使用します。
@see Socket.open, socket(2), socket(2linux),
socket(2freebsd)... -
BasicSocket
# getsockname -> String (27307.0) -
ソケットの情報を取得します。sockaddr 構造体をパックした 文字列を返します。getsockname(2) を参照してください。
...ださい。
例:
require 'socket'
serv = TCPServer.open("", 0)
p serv.getsockname #=> "\002\000\236C\000\000\000\000\000\000\000\000\000\000\000\000"
p Socket.unpack_sockaddr_in(serv.getsockname) #=> [40515, "0.0.0.0"]
c = TCPSocket.open(*Socket.unpack_sockaddr_in(serv.getso... -
Socket
. pack _ sockaddr _ in(port , host) -> String (27307.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
. pack _ sockaddr _ un(path) -> String (27307.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 _ in(port , host) -> String (27307.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 _ un(path) -> String (27307.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
:: Constants :: EAI _ SOCKTYPE -> Integer (27307.0) -
Socket type not supported
...Socket type not supported
getaddrinfo(3), getnameinfo(3) などの
エラーコードです。
対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは
エラーを SocketError に変換するため、この定数は直接は利用しません。
@see getaddrinfo(3linux), gai_strerror(3free... -
Socket
:: Constants :: SOL _ SOCKET -> Integer (27307.0) -
Socket level options。 BasicSocket#getsockopt, BasicSocket#setsockopt の第一引数(level)に使用します。
...Socket level options。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第一引数(level)に使用します。
@see getsockopt(2), setsockopt(2),
sys/socket.h(header), socket(7linux)
getsockopt(2freebsd)... -
Socket
:: EAI _ SOCKTYPE -> Integer (27307.0) -
Socket type not supported
...Socket type not supported
getaddrinfo(3), getnameinfo(3) などの
エラーコードです。
対応する Socket.getaddrinfo, Addrinfo.getaddrinfo などは
エラーを SocketError に変換するため、この定数は直接は利用しません。
@see getaddrinfo(3linux), gai_strerror(3free... -
Socket
:: SOL _ SOCKET -> Integer (27307.0) -
Socket level options。 BasicSocket#getsockopt, BasicSocket#setsockopt の第一引数(level)に使用します。
...Socket level options。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第一引数(level)に使用します。
@see getsockopt(2), setsockopt(2),
sys/socket.h(header), socket(7linux)
getsockopt(2freebsd)... -
UNIXSocket
. socketpair(type=Socket :: SOCK _ STREAM , protocol=0) -> [UNIXSocket , UNIXSocket] (19567.0) -
相互に結合された UNIX ソケットのペアを含む2要素の配列を返します。
...UNIX ソケットのペアを含む2要素の配列を返します。
type にはソケットタイプを指定します。
Socket::SOCK_STREAM, Socket::SOCK_DGRAM, Socket::SOCK_RAW などの
整数、:STREAM, :DGRAM, :RAW などのシンボル、
"STREAM" などの文字列が渡せます。
pro......tocol には プロトコルを指定します。0 は Unix domain でのデフォルト値が
使われます。
require 'socket'
s1, s2 = UNIXSocket.pair
s1.send "a", 0
s1.send "b", 0
p s2.recv(10) #=> "ab"
@param type ソケットタイプ
@param protocol プトロコル... -
SOCKSSocket
. new(host , service) -> SOCKSSocket (18607.0) -
host で指定したホストの service で指定したポートと接続したソケッ トを返します。host はホスト名、またはインターネットアドレスを 示す文字列、service は /etc/services (または NIS) に登録されている サービス名かポート番号です。
host で指定したホストの service で指定したポートと接続したソケッ
トを返します。host はホスト名、またはインターネットアドレスを
示す文字列、service は /etc/services (または NIS) に登録されている
サービス名かポート番号です。
@param host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param service /etc/services (または NIS) に登録されているサービス名かポート番号です。 -
SOCKSSocket
. open(host , service) -> SOCKSSocket (18607.0) -
host で指定したホストの service で指定したポートと接続したソケッ トを返します。host はホスト名、またはインターネットアドレスを 示す文字列、service は /etc/services (または NIS) に登録されている サービス名かポート番号です。
host で指定したホストの service で指定したポートと接続したソケッ
トを返します。host はホスト名、またはインターネットアドレスを
示す文字列、service は /etc/services (または NIS) に登録されている
サービス名かポート番号です。
@param host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param service /etc/services (または NIS) に登録されているサービス名かポート番号です。 -
Addrinfo
# inspect _ sockaddr -> String (18343.0) -
アドレスやポート番号などの情報を人間に読める形の文字列で返します。
...アドレスやポート番号などの情報を人間に読める形の文字列で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).inspect_sockaddr #=> "127.0.0.1:80"
Addrinfo.tcp("ip6-localhost", 80).inspect_sockaddr #=> "[::1]:80"
Addrinfo.unix("/tmp/sock").inspect_so... -
Addrinfo
# socktype -> Integer (18325.0) -
ソケットタイプを整数で返します。
...ソケットタイプを整数で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).socktype == Socket::SOCK_STREAM #=> true... -
Socket
. socketpair(domain , type , protocol=0) -> Array (18307.0) -
相互に結合されたソケットのペアを含む2要素の配列を返します。 引数の指定は Socket.open と同じです。
...のペアを含む2要素の配列を返します。
引数の指定は Socket.open と同じです。
@param domain Socket.open を参照してください。
@param type Socket.open を参照してください。
@param protocol Socket.open を参照してください。
@see Socket.open... -
BasicSocket (18007.0)
-
ソケットを表す抽象クラスです。具体的なソケット操作はサブクラスで 定義されます。
...ソケットを表す抽象クラスです。具体的なソケット操作はサブクラスで
定義されます。
例えばインターネットドメインストリームソケットの場合は
TCPSocket を用います。... -
IPSocket (18007.0)
-
インターネットドメインソケットの抽象クラス。
インターネットドメインソケットの抽象クラス。
通常の IO クラスのサブクラスと同様の入出力ができます。 -
SOCKSSocket
# close -> nil (18007.0) -
ソケットを閉じます。
ソケットを閉じます。 -
Socket (18007.0)
-
汎用ソケットクラス。
...して
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 で
作... -
SocketError (18007.0)
-
socket ライブラリに関する例外クラスです。
...socket ライブラリに関する例外クラスです。... -
TCPSocket (18007.0)
-
インターネットドメインのストリーム型ソケットのクラスです。
...をそのままサーバに転送するプログラムは以下の
ようになります。
require "socket"
port = if ARGV.size > 0 then ARGV.shift else 4444 end
print port, "\n"
s = TCPSocket.open("localhost", port)
while gets
s.write($_)
print(s.gets)
end
s.close... -
UDPSocket (18007.0)
-
UDP/IPデータグラム型ソケットのクラス。
UDP/IPデータグラム型ソケットのクラス。 -
UNIXSocket (18007.0)
-
UNIX ドメインのストリーム型ソケットのクラス。
UNIX ドメインのストリーム型ソケットのクラス。
通常の IO クラスのサブクラスと同様の入出力ができます。 -
UNIXSocket
. pair(type=Socket :: SOCK _ STREAM , protocol=0) -> [UNIXSocket , UNIXSocket] (10267.0) -
相互に結合された UNIX ソケットのペアを含む2要素の配列を返します。
...UNIX ソケットのペアを含む2要素の配列を返します。
type にはソケットタイプを指定します。
Socket::SOCK_STREAM, Socket::SOCK_DGRAM, Socket::SOCK_RAW などの
整数、:STREAM, :DGRAM, :RAW などのシンボル、
"STREAM" などの文字列が渡せます。
pro......tocol には プロトコルを指定します。0 は Unix domain でのデフォルト値が
使われます。
require 'socket'
s1, s2 = UNIXSocket.pair
s1.send "a", 0
s1.send "b", 0
p s2.recv(10) #=> "ab"
@param type ソケットタイプ
@param protocol プトロコル... -
Socket
. accept _ loop(sockets) {|sock , client _ addrinfo| . . . } -> () (9610.0) -
sockets でサーバソケットを受け取り、接続を待ち受け、 クライアントとの接続が確立するたびにブロックにその接続 ソケットを渡し呼び出します。
...sockets でサーバソケットを受け取り、接続を待ち受け、
クライアントとの接続が確立するたびにブロックにその接続
ソケットを渡し呼び出します。
ブロックの引数はクライアントと接続したソケットオブジェクトと
Addrinfo......
Socket.tcp_server_loop と同様、ブロックは
逐次的に呼び出されます。つまりブロックか終了するまで
次の接続は accept されません。
並列に通信したい場合は
スレッドのような並列実行機構を使う必要があります。
@param sockets......待ち受けたいサーバソケットの配列
@see Socket.tcp_server_loop, Socket.unix_server_loop... -
UDPSocket
. new(address _ family=Socket :: AF _ INET) -> UDPSocket (9607.0) -
新しい UDP ソケットを返します。
...ss_family には Socket::AF_INET のような整数、:INET のような
シンボル、"INET" のような文字列を指定することができます。
require 'socket'
UDPSocket.new # => #<UDPSocket:fd 3>
UDPSocket.new(Socket::AF_INET6) # => #<UDPSocket:fd 4>
@param a... -
UDPSocket
. open(address _ family=Socket :: AF _ INET) -> UDPSocket (9607.0) -
新しい UDP ソケットを返します。
...ss_family には Socket::AF_INET のような整数、:INET のような
シンボル、"INET" のような文字列を指定することができます。
require 'socket'
UDPSocket.new # => #<UDPSocket:fd 3>
UDPSocket.new(Socket::AF_INET6) # => #<UDPSocket:fd 4>
@param a... -
Socket
. tcp _ server _ loop(host , port) {|sock , addr| . . . } -> () (9457.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。
...それが用いられます。
# 逐次的な echo サーバ
# 一度に一つのクライアントした取り扱えない
require 'socket'
Socket.tcp_server_loop(16807) {|sock, client_addrinfo|
begin
IO.copy_stream(sock, sock)
ensure
sock.close
end
}
# ス......注意
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 Socket.tcp_server_sockets, Socket.accept_loop... -
Socket
. tcp _ server _ loop(port) {|sock , addr| . . . } -> () (9457.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。
...それが用いられます。
# 逐次的な echo サーバ
# 一度に一つのクライアントした取り扱えない
require 'socket'
Socket.tcp_server_loop(16807) {|sock, client_addrinfo|
begin
IO.copy_stream(sock, sock)
ensure
sock.close
end
}
# ス......注意
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 Socket.tcp_server_sockets, Socket.accept_loop... -
Socket
. unix(path) -> Socket (9400.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 (9400.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
. getaddrinfo(nodename , servname , family=nil , socktype=nil , protocol=nil , flags=nil) -> Array (9379.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
. tcp(host , port , local _ host=nil , local _ port=nil , connect _ timeout: nil) -> Socket (9379.0) -
TCP/IP で host:port に接続するソケットオブジェクトを作成します。
...ックが返した値です。
ブロックなしで呼ばれた場合はソケットオブジェクトを返します。
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.r... -
Socket
. tcp(host , port , local _ host=nil , local _ port=nil , connect _ timeout: nil) {|socket| . . . } -> object (9379.0) -
TCP/IP で host:port に接続するソケットオブジェクトを作成します。
...ックが返した値です。
ブロックなしで呼ばれた場合はソケットオブジェクトを返します。
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.r... -
Socket
. new(domain , type , protocol=0) -> Socket (9373.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 (9373.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> のようなインクルードファイルに定義されている定数を... -
BasicSocket
# sendmsg(mesg , flags=0 , dest _ sockaddr=nil , *controls) -> Integer (9343.0) -
sendmsg(2) を用いてメッセージを送ります。
...ンブロッキング方式で通信したい
場合は BasicSocket#sendmsg_nonblock を用います。
ソケットが connection-less の場合は dest_sockaddr で
通信先のアドレスを指定しなければなりません。Socket.sockaddr_in
の返り値や Addrinfo オブジェクトを......ます。
Socket::AncillaryData のインスタンスや
3要素(cmsg_level, cmsg_type, cmsg_data) の配列を用いることができます。
送ったバイト数を返します。
# UnixSocket#send_io の実装例
# use Socket::AncillaryData.
require 'socket'
ancdata = Socket::Ancill......aryData.int(:UNIX, :SOCKET, :RIGHTS, io.fileno)
sock.sendmsg("a", 0, nil, ancdata)
# use 3-element array.
ancdata = [:SOCKET, :RIGHTS, [io.fileno].pack("i!")]
sock.sendmsg("\0", 0, nil, ancdata)
@param mesg メッセージ文字列
@param flags フラグ(Socket::MSG_* という定数の... -
UNIXSocket
. new(path) -> UNIXSocket (9331.0) -
path で指定したパス名を用いてソケットを接続します。
...してそのブロックを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。
@param path 接続先のパス名文字列
require 'socket'
s = UNIXSocket.new("/tmp/sock")
s.send("hello", 0)... -
UNIXSocket
. new(path) {|sock| . . . } -> object (9331.0) -
path で指定したパス名を用いてソケットを接続します。
...してそのブロックを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。
@param path 接続先のパス名文字列
require 'socket'
s = UNIXSocket.new("/tmp/sock")
s.send("hello", 0)... -
UNIXSocket
. open(path) -> UNIXSocket (9331.0) -
path で指定したパス名を用いてソケットを接続します。
...してそのブロックを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。
@param path 接続先のパス名文字列
require 'socket'
s = UNIXSocket.new("/tmp/sock")
s.send("hello", 0)... -
UNIXSocket
. open(path) {|sock| . . . } -> object (9331.0) -
path で指定したパス名を用いてソケットを接続します。
...してそのブロックを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。
@param path 接続先のパス名文字列
require 'socket'
s = UNIXSocket.new("/tmp/sock")
s.send("hello", 0)... -
BasicSocket
# recvmsg(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] (9325.0) -
recvmsg(2) を用いてメッセージを受け取ります。
...ックします。ノンブロッキング方式で通信したい
場合は BasicSocket#recvmsg_nonblock を用います。
maxmesglen, maxcontrollen で受け取るメッセージおよび補助データ
(Socket::AncillaryData)の最大長をバイト単位で指定します。
省略した場合......は必要なだけ内部バッファを拡大して
データが切れないようにします。
flags では Socket::MSG_* という名前の定数の biwsise OR を取った
ものを渡します。
opts にはその他のオプションを渡します。今のところ :scm_right => bool
と......します。詳しくは Socket::AncillaryData#unix_rights
を参照してください。
返り値は配列で得られます。
返り値の配列の最初の要素は受け取ったメッセージを表す文字列です。
2番目の要素は connection-less socket の場合には送り元の... -
Socket
# connect(server _ sockaddr) -> 0 (9325.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 (9325.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) がエラーを報告... -
Addrinfo
# to _ sockaddr -> String (9307.0) -
struct sockaddr をパックした形式の文字列に変換します。
...struct sockaddr をパックした形式の文字列に変換します。
require 'socket'
Addrinfo.tcp("localhost", 80).to_sockaddr
#=> "\x02\x00\x00P\x7F\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00"... -
BasicSocket
# recvmsg _ nonblock(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] (9307.0) -
recvmsg(2) を用いてノンブロッキング方式でメッセージを受け取ります。
...recvmsg(2) を用いてノンブロッキング方式でメッセージを受け取ります。
ブロッキングの有無以外は BasicSocket#recvmsg と同じです。
詳しくはそちらを参照してください。
@param maxmesglen 受け取るメッセージの最大長
@param flags... -
BasicSocket
# send(mesg , flags , dest _ sockaddr = nil) -> Integer (9307.0) -
ソケットを介してデータを送ります。flags に関しては send(2) を参照してください。connect していないソケット に対しては送り先である dest_sockaddr を指定する必要があります。実際に送っ たデータの長さを返します。
...socket#pack_string
を指定します。
データの送信に失敗した場合は例外 Errno::EXXX が発生します。
@param mesg 送信するデータを文字列で指定します。
@param flags send(2) の flags を参照してください。
@param dest_sockaddr lib:socket......#pack_stringを指定します。
@raise Errno::EXXX データの送信に失敗した場合に発生します。
例:
require 'socket'
s = UDPSocket.new
sockaddr = Socket.sockaddr_in("discard", "localhost")
s.send("The king has donkey ears!", 0, sockaddr)... -
BasicSocket
# sendmsg _ nonblock(mesg , flags=0 , dest _ sockaddr=nil , *controls) -> Integer (9307.0) -
sendmsg(2) を用いてノンブロッキング方式でメッセージを送ります。
...cSocket#sendmsg を見てください。
@return 送ったバイト数
@param mesg メッセージ文字列
@param flags フラグ(Socket::MSG_* という定数の bitwise OR を取ったもの)
@param dest_sockaddr 通信先のアドレス
@param controls 補助データの配列
@see BasicSocket#... -
BasicSocket
# shutdown(how = Socket :: SHUT _ RDWR) -> 0 (9307.0) -
ソケットの以降の接続を終了させます。
...接続が終了します。
* Socket::SHUT_RD: それ以降の受信が拒否されます
* Socket::SHUT_WR: それ以降の送信が拒否されます
* Socket::SHUT_RDWR: それ以降の送信、受信ともに拒否されます
how を省略すると Socket::SHUT_RDWR を指定したこ......とになります。
shutdown(2) を参照してください。
@param how 接続の終了の仕方を Socket::SHUT_RD, Socket::SHUT_WR, Socket::SHUT_RDWR などで指定します。
@raise Errno::EXXX ソケットの以降の接続を終了操作が失敗した場合に発生します。
@raise... -
BasicSocket
. for _ fd(fd) -> BasicSocket (9307.0) -
ファイルディスクリプタ fd に対する新しいソケットを生成します。
...はどのクラスの for_fd を呼びだしたかによって決まります。
require 'socket'
BasicSocket.for_fd(fd) # BasicSocket のインスタンスを返す
TCPSocket.for_fd(fd) # TCPSocket のインスタンスを返す
@param fd ファイルディスクリプタ を指定し... -
Socket
# bind(my _ sockaddr) -> 0 (9307.0) -
ソケットを my_sockaddr に結合します。bind(2) と同じ働きをします。
...ソケットを my_sockaddr に結合します。bind(2)
と同じ働きをします。
@param my_sockaddr lib:socket#pack_stringもしくはAddrinfoオブジェクトを指定します。
@return 0 を返します。... -
Socket
. gethostbyaddr(host , type = Socket :: AF _ INET) -> Array (9307.0) -
sockaddr 構造体をパックした文字列からホスト情報を返します。 ホスト情報の構造は Socket.gethostbyname と同じです。 type には、アドレスタイプ(デフォルトは Socket::AF_INET)を指定します。
...は Socket.gethostbyname と同じです。
type には、アドレスタイプ(デフォルトは
Socket::AF_INET)を指定します。
@param host ホストを文字列で指定します。
@param type アドレスタイプ(デフォルトはSocket::AF_INET)を指定します。
@raise SocketEr... -
Socket
. getifaddrs -> [Socket :: Ifaddr] (9307.0) -
インターフェイスのアドレスを Socket::Ifaddr の配列で返します。
...スを Socket::Ifaddr の配列で返します。
本メソッドはマルチキャスト通信が可能なインターフェイスを見つけるために使う事ができます。
require 'socket'
pp Socket.getifaddrs.reject {|ifaddr|
!ifaddr.addr.ip? || (ifaddr.flags & Socket::IFF_MUL......nfo: 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[protoc......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... -
Socket
. udp _ server _ loop _ on(sockets) {|msg , msg _ src| . . . } -> () (9307.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
. udp _ server _ recv(sockets) {|msg , msg _ src| . . . } -> () (9307.0) -
socketsで与えられた各 UDP ソケットからデータを読み取ります。
...socketsで与えられた各 UDP ソケットからデータを読み取ります。
各ソケットからメッセージを読み取るごとにブロックを呼び出します。
ブロックに渡される引数は msg と msg_src の 2 つで、
msg は受け取ったメッセージ文字列......通信相手の Socket::UDPSource オブジェクトです。
Socket.udp_server_loop はこのメソッドの用いて以下のようにして
実装できます。
require 'socket'
udp_server_sockets(host, port) {|sockets|
loop {
readable, _, _ = IO.select(sockets)
udp_serv......er_recv(readable) {|msg, msg_src| ... }
}
}
@param sockets 読み込むソケットの配列... -
Socket
. unix _ server _ loop(path) {|socket , client _ addrinfo| . . . } -> () (9307.0) -
Unix サーバソケットを生成し、 新しい接続を受け入れるごとにブロックを呼び出します。
...全です。
つまり、 /tmp/malicious-users-directory/socket という名前のパスは
使うべきではありません。
/tmp にスティッキービットが立っている場合、/tmp/socket や
/tmp/your-private-directory/socket というパス名は安全と考えて良いでしょう... -
Socket
:: AncillaryData . int(family , cmsg _ level , cmsg _ type , integer) -> Socket :: AncillaryData (9307.0) -
データとして整数を保持する Socket::AncillaryData オブジェクトを生成します。
...持する
Socket::AncillaryData オブジェクトを生成します。
整数データのサイズおよびエンディアンは実行するホストによって異なります。
require 'socket'
p Socket::AncillaryData.int(:UNIX, :SOCKET, :RIGHTS, STDERR.fileno)
#=> #<Socket::AncillaryDa......ta: UNIX SOCKET RIGHTS 2>
@param family ソケットファミリー
@param cmsg_level プロトコル
@param cmsg_type 補助データの種類
@param integer データ内容
@see Socket::AncillaryData.new... -
Socket
:: AncillaryData . ip _ pktinfo(addr , ifindex , spec _ dst=addr) -> Socket :: AncillaryData (9307.0) -
type が IP_PKTINFO である AncillaryData を生成します。
...によっては使えない場合があります。
require 'socket'
addr = Addrinfo.ip("127.0.0.1")
ifindex = 0
spec_dst = Addrinfo.ip("127.0.0.1")
p Socket::AncillaryData.ip_pktinfo(addr, ifindex, spec_dst)
#=> #<Socket::AncillaryData: INET IP PKTINFO 127.0.0.1 ifindex:0 spec_dst:127.......0.0.1>
@param addr アドレス(文字列もしくは Addrinfo)
@param ifindex インターフェースのインデックス(整数)
@param spec_dst パケットのローカルアドレス(文字列もしくは Addrinfo)
@see Socket::AncillaryData#ip_pktinfo,
Socket::Constants::IP_PKTINFO... -
Socket
:: AncillaryData . ipv6 _ pktinfo(addr , ifindex) -> Socket :: AncillaryData (9307.0) -
type が IPV6_PKTINFO である AncillaryData を生成します。
...ta を生成します。
IPV6_PKTINFO は 3542 で定義されています。
require 'socket'
addr = Addrinfo.ip("::1")
ifindex = 0
p Socket::AncillaryData.ipv6_pktinfo(addr, ifindex)
#=> #<Socket::AncillaryData: INET6 IPV6 PKTINFO ::1 ifindex:0>
@param addr アドレス(文字列も......しくは Addrinfo)
@param ifindex インターフェースのインデックス(整数)
@see Socket::AncillaryData#ipv6_pktinfo,
Socket::Constants::IPV6_PKTINFO... -
Socket
:: AncillaryData . new(family , cmsg _ level , cmsg _ type , cmsg _ data) -> Socket :: AncillaryData (9307.0) -
新たな Socket::AncillaryData オブジェクトを生成します。
...新たな Socket::AncillaryData オブジェクトを生成します。
family はソケットファミリーを指定します。
整数、文字列、シンボルを渡します。
* Socket::AF_INET, "AF_INET", "INET", :AF_INET, :INET
* Socket::AF_UNIX, "AF_UNIX", "UNIX", :AF_UNIX, :UNIX
*......定します。
整数、文字列、シンボルを渡します。
* Socket::SOL_SOCKET, "SOL_SOCKET", "SOCKET", :SOL_SOCKET and :SOCKET
* Socket::IPPROTO_IP, "IP" and :IP
* Socket::IPPROTO_IPV6, "IPV6" and :IPV6
* Socket::IPPROTO_TCP, "TCP" and :TCP
* など
cmsg_type は補助データの......異なります。
整数、文字列、シンボルを渡します。
* Socket::SCM_RIGHTS, "SCM_RIGHTS", "RIGHTS", :SCM_RIGHTS, :RIGHTS for SOL_SOCKET
* Socket::IP_RECVTTL, "RECVTTL" and :RECVTTL for IPPROTO_IP
* Socket::IPV6_PKTINFO, "PKTINFO" and :PKTINFO for IPPROTO_IPV6
* など
cmsg_data... -
Socket
:: AncillaryData . unix _ rights(*ios) -> Socket :: AncillaryData (9307.0) -
ios で指定したファイルのファイルデスクリプタを データとして持つ family=AF_UNIX, level=SOL_SOCKET, type=SCM_RIGHTS という Socket::AncillaryData オブジェクトを生成して返します。
...level=SOL_SOCKET, type=SCM_RIGHTS
という Socket::AncillaryData オブジェクトを生成して返します。
require 'socket'
p Socket::AncillaryData.unix_rights(STDERR)
#=> #<Socket::AncillaryData: UNIX SOCKET RIGHTS 2>
@param ios IO オブジェクトの配列
@see Socket::Ancillar......yData#unix_rights,
Socket::Constants::SCM_RIGHTS... -
Socket
:: Option . bool(family , level , optname , boolean) -> Socket :: Option (9307.0) -
整数をデータとして持つ Socket::Option オブジェクト新たに生成し返します。
...整数をデータとして持つ Socket::Option オブジェクト新たに生成し返します。
family, level, optname には Socket::SOL_SOCKET のような整数の他、
文字列("SOL_SOCKET", "SOCKET")、シンボル(:SOL_SOCKET, :SOCKET)を
指定することができます。
@param f......ションの名前
@param boolean データ(真偽値)
require 'socket'
p Socket::Option.bool(:INET, :SOCKET, :KEEPALIVE, true)
# => #<Socket::Option: INET SOCKET KEEPALIVE 1>
p Socket::Option.bool(:INET, :SOCKET, :KEEPALIVE, false)
# => #<Socket::Option: AF_INET SOCKET KEEPALIVE 0>... -
Socket
:: Option . int(family , level , optname , integer) -> Socket :: Option (9307.0) -
整数をデータとして持つ Socket::Option オブジェクト新たに生成し返します。
...整数をデータとして持つ Socket::Option オブジェクト新たに生成し返します。
family, level, optname には Socket::SOL_SOCKET のような整数の他、
文字列("SOL_SOCKET", "SOCKET")、シンボル(:SOL_SOCKET, :SOCKET)を
指定することができます。
@param f... -
Socket
:: Option . linger(onoff , secs) -> Socket :: Option (9307.0) -
SOL_SOCKET/SO_LINGER 用の Socket::Option オブジェクト を新たに生成し返します。
...SOL_SOCKET/SO_LINGER 用の Socket::Option オブジェクト
を新たに生成し返します。
@param onoff 0/1もしくは真偽値
@param secs 整数値... -
Socket
:: Option . new(family , level , optname , data) -> Socket :: Option (9307.0) -
Socket::Option オブジェクト新たに生成し返します。
...
Socket::Option オブジェクト新たに生成し返します。
family, level, optname には Socket::SOL_SOCKET のような整数の他、
文字列("SOL_SOCKET", "SOCKET")、シンボル(:SOL_SOCKET, :SOCKET)を
指定することができます。
@param family ソケットファミリー......@param optname オプションの名前
@param data データ(文字列)
@see Socket::Option.int, Socket::Option.bool, Socket::Option.linger
require 'socket'
sockopt = Socket::Option.new(:INET, :SOCKET, :KEEPALIVE, [1].pack("i"))
p sockopt #=> #<Socket::Option: INET SOCKET KEEPALIVE 1>... -
Socket
:: UDPSource . new(remote _ addr , local _ addr) {|msg| . . . } -> Socket :: UDPSource (9307.0) -
Socket::UDPSource オブジェクトを生成します。
...
Socket::UDPSource オブジェクトを生成します。
このメソッドはユーザは直接使いません。Socket.udp_server_loop が
内部で用います。
@param remote_addr リモートのアドレス(Addrinfo オブジェクト)
@param local_addr ローカルのアドレス(Addrinfo... -
TCPSocket
. new(host , service , local _ host=nil , local _ service=nil , connect _ timeout: nil) -> TCPSocket (9307.0) -
host で指定したホストの service で指定したポートと接続したソケッ トを返します。host はホスト名、またはインターネットアドレスを 示す文字列、service は /etc/services (または NIS) に登録されている サービス名かポート番号です。
host で指定したホストの service で指定したポートと接続したソケッ
トを返します。host はホスト名、またはインターネットアドレスを
示す文字列、service は /etc/services (または NIS) に登録されている
サービス名かポート番号です。
引数 local_host, local_service を指定した場合、そのアドレス
に対して bind(2) します。
@param host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param service /etc/services (または N... -
TCPSocket
. open(host , service , local _ host=nil , local _ service=nil , connect _ timeout: nil) -> TCPSocket (9307.0) -
host で指定したホストの service で指定したポートと接続したソケッ トを返します。host はホスト名、またはインターネットアドレスを 示す文字列、service は /etc/services (または NIS) に登録されている サービス名かポート番号です。
host で指定したホストの service で指定したポートと接続したソケッ
トを返します。host はホスト名、またはインターネットアドレスを
示す文字列、service は /etc/services (または NIS) に登録されている
サービス名かポート番号です。
引数 local_host, local_service を指定した場合、そのアドレス
に対して bind(2) します。
@param host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param service /etc/services (または N... -
UDPSocket
# send(mesg , flags , sockaddr _ to) -> Integer (9307.0) -
UDP ソケットを介してデータを送ります。
...ります。
flags には Socket::MSG_* という定数の bitwise OR を渡します。
詳しい意味は send(2) を参照してください。
host, port の対、もしくは sockaddr_to で送り先を指定します。
送り先を省略した場合は UDPSocket#connect で接続した
先......sockaddr_to にはlib:socket#pack_string もしくは
Addrinfo オブジェクトを指定します。
host, port に関しては lib:socket#host_format、
lib:socket#service_formatを参照してください。
2 引数、3 引数の形式の場合の動作は、
BasicSocket#send と同じです... -
BasicSocket
# do _ not _ reverse _ lookup -> bool (9079.0) -
ソケットごとのアドレスからホスト名への逆引きの設定を返します。
...きの
BasicSocket.do_not_reverse_lookup の値になります。
require 'socket'
BasicSocket.do_not_reverse_lookup = false
TCPSocket.open("www.ruby-lang.org", 80) {|sock|
p sock.do_not_reverse_lookup # => false
}
BasicSocket.do_not_reverse_lookup = true
TCPSocket.open("www.r......uby-lang.org", 80) {|sock|
p sock.do_not_reverse_lookup # => true
}
@see BasicSocket#do_not_reverse_lookup=... -
Socket
# accept -> Array (9043.0) -
新しい接続を受け付けて、新しい接続に対するソケットとアドレスの ペアを返します。accept(2) を参照。
...、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... -
Socket
# recvfrom(maxlen , flags=0) -> [String , Addrinfo] (9043.0) -
ソケットからデータを受け取ります。
...ソケットからデータを受け取ります。
BasicSocket#recv と同様ですが、返り値として
データ文字列と相手ソケットのアドレスのペアが返されます。
flags には Socket::MSG_* という定数の bitwise OR を渡します。
詳しくは 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"]...