ライブラリ
- socket (15)
クラス
- BasicSocket (3)
-
Socket
:: AncillaryData (12)
キーワード
-
cmsg
_ is? (1) - data (1)
- family (1)
- int (1)
-
ip
_ pktinfo (1) -
ipv6
_ pktinfo (1) -
ipv6
_ pktinfo _ addr (1) -
ipv6
_ pktinfo _ ifindex (1) - level (1)
- recvmsg (1)
-
recvmsg
_ nonblock (1) - sendmsg (1)
- type (1)
-
unix
_ rights (1)
検索結果
先頭5件
-
Socket
:: AncillaryData # unix _ rights -> [IO] | nil (63094.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... -
Socket
:: AncillaryData # ipv6 _ pktinfo -> [Addrinfo , Integer] (63076.0) -
自身の type が IPV6_PKTINFO である場合、保持しているデータ (アドレス、インターフェースのインデックス) を2要素の配列で返します。
自身の type が IPV6_PKTINFO である場合、保持しているデータ
(アドレス、インターフェースのインデックス)
を2要素の配列で返します。
IPV6_PKTINFO については 3542 を参照してください。
require 'socket'
addr = Addrinfo.ip("::1")
ifindex = 0
ancdata = Socket::AncillaryData.ipv6_pktinfo(addr, ifindex)
p ancdata.ipv6_pktinfo #=> [#<Addrinfo: ::1>, 0]
@see Socke... -
Socket
:: AncillaryData # ipv6 _ pktinfo _ addr -> Addrinfo (63076.0) -
自身の type が IPV6_PKTINFO である場合、保持しているデータ (アドレス、インターフェースのインデックス) のアドレスを返します。
自身の type が IPV6_PKTINFO である場合、保持しているデータ
(アドレス、インターフェースのインデックス)
のアドレスを返します。
require 'socket'
addr = Addrinfo.ip("::1")
ifindex = 0
ancdata = Socket::AncillaryData.ipv6_pktinfo(addr, ifindex)
p ancdata.ipv6_pktinfo_addr #=> #<Addrinfo: ::1>
@see Socket::AncillaryData.ipv6_pktinfo,
S... -
Socket
:: AncillaryData # ipv6 _ pktinfo _ ifindex -> Integer (63076.0) -
自身の type が IPV6_PKTINFO である場合、保持しているデータ (アドレス、インターフェースのインデックス) のインデックスを返します。
自身の type が IPV6_PKTINFO である場合、保持しているデータ
(アドレス、インターフェースのインデックス)
のインデックスを返します。
require 'socket'
addr = Addrinfo.ip("::1")
ifindex = 0
ancdata = Socket::AncillaryData.ipv6_pktinfo(addr, ifindex)
p ancdata.ipv6_pktinfo_ifindex #=> 0
@see Socket::AncillaryData.ipv6_pktinfo,
Socket::Anc... -
Socket
:: AncillaryData # cmsg _ is?(level , type) -> bool (63058.0) -
自身の level と type が引数のものと一致している場合に真を返します。
自身の level と type が引数のものと一致している場合に真を返します。
require 'socket'
ancdata = Socket::AncillaryData.new(:INET6, :IPV6, :PKTINFO, "")
ancdata.cmsg_is?(Socket::IPPROTO_IPV6, Socket::IPV6_PKTINFO) #=> true
ancdata.cmsg_is?(:IPV6, :PKTINFO) #=> true
ancdata.cmsg_is?(:IP, :PKTINFO) #=> fa... -
Socket
:: AncillaryData # int -> Integer (63058.0) -
自身が保持している cmsg data (データ) を整数の形で返します。
自身が保持している cmsg data (データ) を整数の形で返します。
整数データのサイズおよびエンディアンは実行するホストによって異なります。
require 'socket'
ancdata = Socket::AncillaryData.int(:UNIX, :SOCKET, :RIGHTS, STDERR.fileno)
p ancdata.int #=> 2
@raise TypeError cmgs data のサイズが int のバイト数と異なる場合に発生します
@see Socket::AncillaryData.new Socket::Ancillar... -
Socket
:: AncillaryData # data -> String (63040.0) -
自身が保持している cmsg data (データ) を返します。
自身が保持している cmsg data (データ) を返します。
require 'socket'
p Socket::AncillaryData.new(:INET6, :IPV6, :PKTINFO, "").type
#=> ""
@see Socket::AncillaryData.new -
Socket
:: AncillaryData # family -> Integer (63040.0) -
自身が保持している socket family を返します。
自身が保持している socket family を返します。
require 'socket'
p Socket::AncillaryData.new(:INET6, :IPV6, :PKTINFO, "").family
#=> 10
@see Socket::AncillaryData.new -
Socket
:: AncillaryData # ip _ pktinfo -> [Addrinfo , Integer , Addrinfo] (63040.0) -
自身の type が IP_PKTINFO である場合、保持しているデータ (アドレス、インターフェースのインデックス、ローカルアドレス) を3要素の配列で返します。
自身の type が IP_PKTINFO である場合、保持しているデータ
(アドレス、インターフェースのインデックス、ローカルアドレス)
を3要素の配列で返します。
IP_PKTINFO は非標準的拡張であり、システムによっては使えない場合があります。
require 'socket'
addr = Addrinfo.ip("127.0.0.1")
ifindex = 0
spec_dest = Addrinfo.ip("127.0.0.1")
ancdata = Socket::AncillaryData.ip_pktinfo(addr, ifindex, spe... -
Socket
:: AncillaryData # level -> Integer (63040.0) -
自身が保持している cmsg level (元プロトコル) を返します。
自身が保持している cmsg level (元プロトコル) を返します。
require 'socket'
p Socket::AncillaryData.new(:INET6, :IPV6, :PKTINFO, "").level
#=> 41
@see Socket::AncillaryData.new -
Socket
:: AncillaryData # type -> Integer (63040.0) -
自身が保持している cmsg type (種類) を返します。
自身が保持している cmsg type (種類) を返します。
require 'socket'
p Socket::AncillaryData.new(:INET6, :IPV6, :PKTINFO, "").type
#=> 2
@see Socket::AncillaryData.new -
Socket
:: AncillaryData # timestamp -> Time (63022.0) -
タイムスタンプ制御メッセージに含まれる時刻を Time オブジェクト で返します。
タイムスタンプ制御メッセージに含まれる時刻を 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... -
BasicSocket
# recvmsg(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] (361.0) -
recvmsg(2) を用いてメッセージを受け取ります。
recvmsg(2) を用いてメッセージを受け取ります。
このメソッドはブロックします。ノンブロッキング方式で通信したい
場合は BasicSocket#recvmsg_nonblock を用います。
maxmesglen, maxcontrollen で受け取るメッセージおよび補助データ
(Socket::AncillaryData)の最大長をバイト単位で指定します。
省略した場合は必要なだけ内部バッファを拡大して
データが切れないようにします。
flags では Socket::MSG_* という名前の定数の biwsise OR を取った
ものを渡します。
opts にはその他... -
BasicSocket
# recvmsg _ nonblock(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] (307.0) -
recvmsg(2) を用いてノンブロッキング方式でメッセージを受け取ります。
recvmsg(2) を用いてノンブロッキング方式でメッセージを受け取ります。
ブロッキングの有無以外は BasicSocket#recvmsg と同じです。
詳しくはそちらを参照してください。
@param maxmesglen 受け取るメッセージの最大長
@param flags フラグ
@param maxcontrollen 受け取る補助データの最大長
@param opts ハッシュオプション -
BasicSocket
# sendmsg(mesg , flags=0 , dest _ sockaddr=nil , *controls) -> Integer (58.0) -
sendmsg(2) を用いてメッセージを送ります。
sendmsg(2) を用いてメッセージを送ります。
このメソッドはブロックします。ノンブロッキング方式で通信したい
場合は BasicSocket#sendmsg_nonblock を用います。
ソケットが connection-less の場合は dest_sockaddr で
通信先のアドレスを指定しなければなりません。Socket.sockaddr_in
の返り値や Addrinfo オブジェクトを引数として渡すことができます。
controls には 補助データ(ancillary data)を渡します。
Socket::AncillaryData のインスタンスや
3要素(c...