ライブラリ
- ビルトイン (57)
-
drb
/ acl (12) - ipaddr (12)
-
net
/ ftp (12) - openssl (408)
- pathname (12)
- resolv-replace (36)
- shell (6)
-
shell
/ command-processor (6) -
shell
/ filter (6) - socket (1388)
- timeout (16)
-
webrick
/ https (12)
クラス
- ACL (12)
- Addrinfo (360)
- Array (21)
- BasicSocket (228)
-
File
:: Stat (24) - IPAddr (12)
- IPSocket (36)
-
Net
:: FTP (12) -
OpenSSL
:: SSL :: SSLServer (24) -
OpenSSL
:: SSL :: SSLSocket (300) - Pathname (12)
- SOCKSSocket (12)
- Shell (6)
-
Shell
:: CommandProcessor (6) -
Shell
:: Filter (6) - Socket (120)
-
Socket
:: AncillaryData (144) -
Socket
:: Ifaddr (104) -
Socket
:: Option (108) -
Socket
:: UDPSource (36) - String (12)
- TCPServer (48)
- UDPSocket (108)
- UNIXServer (48)
- UNIXSocket (72)
-
WEBrick
:: HTTPRequest (12)
モジュール
- Kernel (16)
-
OpenSSL
:: SSL :: SocketForwarder (84)
キーワード
- accept (60)
-
accept
_ nonblock (48) - addr (48)
- afamily (12)
-
allow
_ socket? (12) - bind (60)
- bool (12)
- broadaddr (12)
- canonname (12)
- cert (12)
- cipher (12)
- close (12)
- closed? (12)
-
cmsg
_ is? (12) - connect (72)
-
connect
_ address (12) -
connect
_ from (24) -
connect
_ nonblock (24) -
connect
_ to (24) - context (12)
- data (24)
-
do
_ not _ reverse _ lookup (12) -
do
_ not _ reverse _ lookup= (24) - dstaddr (12)
- family (36)
-
family
_ addrinfo (24) - fcntl (12)
- flags (12)
- ftype (12)
- getnameinfo (12)
- getpeereid (12)
- getpeername (12)
- getsockname (12)
- getsockopt (24)
- hostname (12)
- hostname= (12)
- ifindex (12)
- inspect (12)
-
inspect
_ sockaddr (12) - int (24)
- io (12)
- ip? (12)
-
ip
_ address (12) -
ip
_ pktinfo (12) -
ip
_ port (12) -
ip
_ unpack (12) - ipv4? (12)
- ipv6? (12)
-
ipv6
_ pktinfo (12) -
ipv6
_ pktinfo _ addr (12) -
ipv6
_ pktinfo _ ifindex (12) -
ipv6
_ to _ ipv4 (12) - ipv6only! (12)
- level (24)
- linger (12)
- listen (60)
-
local
_ address (24) - name (12)
- netmask (12)
- optname (12)
- pack (21)
- parse (12)
- path (12)
-
peer
_ cert (12) -
peer
_ cert _ chain (12) - peeraddr (36)
- pending (12)
- pfamily (12)
-
post
_ connection _ check (12) - protocol (12)
- recv (12)
-
recv
_ io (12) -
recv
_ nonblock (12) - recvfrom (36)
-
recvfrom
_ nonblock (24) - recvmsg (12)
-
recvmsg
_ nonblock (12) -
remote
_ address (24) - reply (12)
- send (60)
-
send
_ io (12) - sendmsg (12)
-
sendmsg
_ nonblock (12) - session (12)
- session= (12)
-
session
_ reused? (12) -
set
_ socket (12) - setsockopt (36)
- shutdown (24)
- socket? (42)
- socktype (12)
- state (12)
-
sync
_ close (12) -
sync
_ close= (12) - sysaccept (36)
- sysclose (12)
- sysread (12)
- syswrite (12)
- timeout (16)
-
to
_ io (12) -
to
_ s (24) -
to
_ sockaddr (12) - type (12)
- unix? (12)
-
unix
_ path (12) -
unix
_ rights (12) - unpack (24)
-
verify
_ result (12) - vhid (8)
検索結果
先頭5件
- BasicSocket
# getsockopt(level , optname) -> Socket :: Option - BasicSocket
# recvmsg(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] - BasicSocket
# shutdown(how = Socket :: SHUT _ RDWR) -> 0 - BasicSocket
# setsockopt(level , optname , optval) -> 0 - BasicSocket
# recvmsg _ nonblock(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData]
-
BasicSocket
# getsockopt(level , optname) -> Socket :: Option (3190.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... -
BasicSocket
# recvmsg(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] (3156.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 の場合には送り元の... -
BasicSocket
# shutdown(how = Socket :: SHUT _ RDWR) -> 0 (3144.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
# setsockopt(level , optname , optval) -> 0 (3127.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_... -
BasicSocket
# recvmsg _ nonblock(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] (3102.0) -
recvmsg(2) を用いてノンブロッキング方式でメッセージを受け取ります。
...recvmsg(2) を用いてノンブロッキング方式でメッセージを受け取ります。
ブロッキングの有無以外は BasicSocket#recvmsg と同じです。
詳しくはそちらを参照してください。
@param maxmesglen 受け取るメッセージの最大長
@param flags... -
Socket
:: AncillaryData # unix _ rights -> [IO] | nil (3101.0) -
Unix domain socket の SCM_RIGHTS 制御メッセージに含まれる ファイルディスクリプタを IO オブジェクトの配列として返します。
...Unix domain socket の SCM_RIGHTS 制御メッセージに含まれる
ファイルディスクリプタを IO オブジェクトの配列として返します。
得られる IO オブジェクトか IO か Socket です。
この配列は Socket::AncillaryData が初期化されたときに
作......られます。例えば BasicSocket#recvmsg を :scm_rights => true
オプションを付けて呼びだし、
SCM_RIGHTS な 制御メッセージを受け取ったときに配列が作られます。
適切なオプションを指定しなかった場合は配列は生成されず、
このメ......ッドは nil を返します。
require 'socket'
# recvmsg needs :scm_rights=>true for unix_rights
s1, s2 = UNIXSocket.pair
p s1 #=> #<UNIXSocket:fd 3>
s1.sendmsg "stdin and a socket", 0, nil, Socket::AncillaryData.unix_rights(STDIN, s1)
_, _, _... -
Socket
:: AncillaryData # timestamp -> Time (3079.0) -
タイムスタンプ制御メッセージに含まれる時刻を Time オブジェクト で返します。
...以下のいずれかです。
* SOL_SOCKET/SCM_TIMESTAMP (micro second) GNU/Linux, FreeBSD, NetBSD, OpenBSD, Solaris, MacOS X
* SOL_SOCKET/SCM_TIMESTAMPNS (nano second) GNU/Linux
* SOL_SOCKET/SCM_BINTIME (2**(-64) second) FreeBSD
require 'socket'
Addrinfo.udp("127.0.0.1", 0).bind {|s......1|
Addrinfo.udp("127.0.0.1", 0).bind {|s2|
s1.setsockopt(:SOCKET, :TIMESTAMP, true)
s2.send "a", 0, s1.local_address
ctl = s1.recvmsg.last
p ctl
#=> #<Socket::AncillaryData: INET SOCKET TIMESTAMP 2009-02-24 17:35:46.775581>
t = ctl.timestamp
p t......00
p t.usec #=> 775581
p t.nsec #=> 775581000
}
}
@see Socket::Constants::SCM_TIMESTAMP,
Socket::Constants::SCM_TIMESTAMPNS,
Socket::Constants::SCM_BINTIME,
Socket::Constants::SO_TIMESTAMP,
Socket::Constants::SO_TIMESTAMPNS,
Socket::Constants::SO_BINTIME... -
BasicSocket
# sendmsg(mesg , flags=0 , dest _ sockaddr=nil , *controls) -> Integer (3049.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_* という定数の... -
BasicSocket
# recv(maxlen , flags = 0) -> String (3045.0) -
ソケットからデータを受け取り、文字列として返します。 maxlen は受け取る最大の長さを指定します。 flags については recv(2) を参照してください。flags の デフォルト値は 0 です。flags の指定に必要な定数は Socket クラスで定義されています。(例: Socket::MSG_PEEK)
...は recv(2) を参照してください。flags の
デフォルト値は 0 です。flags の指定に必要な定数は
Socket クラスで定義されています。(例: Socket::MSG_PEEK)
内部で呼び出す recv(2) が 0 を返した場合、このメソッドは "" を返します。
この......@raise Errno::EXXX recvfrom(2) がエラーになった場合などに発生します。
例:
require 'socket'
s1, s2 = UNIXSocket.pair
s1.write "a"
s1.close
p s2.recv(10, Socket::MSG_PEEK) #=> "a"
p s2.recv(10) #=> "a"
p s2.recv(10) #=> ""...