クラス
- Addrinfo (17)
- BasicSocket (11)
- IPSocket (1)
- Socket (3)
-
Socket
:: AncillaryData (10) -
Socket
:: Ifaddr (4) -
Socket
:: Option (7) - TCPServer (2)
- UDPSocket (4)
- UNIXServer (2)
- UNIXSocket (5)
キーワード
- addr (1)
- afamily (1)
- canonname (1)
-
cmsg
_ is? (1) - data (2)
- family (2)
- flags (1)
- getnameinfo (1)
- getpeereid (1)
- getpeername (1)
- getsockname (1)
- getsockopt (1)
- ifindex (1)
- inspect (1)
-
inspect
_ sockaddr (1) - int (2)
-
ip
_ address (1) -
ip
_ pktinfo (1) -
ip
_ port (1) -
ip
_ unpack (1) -
ipv6
_ mc _ global? (1) -
ipv6
_ mc _ orglocal? (1) -
ipv6
_ pktinfo (1) -
ipv6
_ pktinfo _ ifindex (1) - level (2)
- linger (1)
- listen (5)
- name (1)
- optname (1)
- path (1)
- peeraddr (1)
- pfamily (1)
- protocol (1)
- recv (1)
-
recv
_ io (1) -
recv
_ nonblock (1) - recvfrom (3)
-
recvfrom
_ nonblock (2) - recvmsg (1)
-
recvmsg
_ nonblock (1) - send (4)
- sendmsg (1)
-
sendmsg
_ nonblock (1) - socktype (1)
- sysaccept (2)
-
to
_ s (2) -
to
_ sockaddr (1) - type (1)
-
unix
_ path (1) -
unix
_ rights (1)
検索結果
先頭5件
-
Addrinfo
# getnameinfo(flags=0) -> [String , String] (45610.0) -
ノード名とサービスを文字列の配列で返します。
... Socket::NI_??? という名前の定数のビット OR を渡します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).getnameinfo
#=> ["localhost", "www"]
Addrinfo.tcp("127.0.0.1", 80).getnameinfo(Socket::NI_NUMERICSERV)
#=> ["localhost", "80"]
@param flags フラグ
@raise SocketEr......ror getnameinfo(3) がエラーを起こした場合に生じる例外
@see Socket.getnameinfo... -
Socket
:: AncillaryData # unix _ rights -> [IO] | nil (36910.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
:: Option # linger -> [bool , Integer] (36910.0) -
オプションが SOL_SOCKET/SO_LINGER である場合に、 オプションのデータ(内容)を真偽値と整数のペアとして返します。
...が SOL_SOCKET/SO_LINGER である場合に、
オプションのデータ(内容)を真偽値と整数のペアとして返します。
@raise TypeError dataのバイト数が不適切である(sizeof(struct linger)と異なる)場合や、
level/optname が SOL_SOCKET/SO_LINGER......でないに発生します
@see Socket::Option#data... -
BasicSocket
# getpeername -> String (36610.0) -
接続の相手先のソケットの情報を取得します。sockaddr 構造体をパッ クした文字列を返します。getpeername(2) を参照してください。
...い。
例:
require 'socket'
serv = TCPServer.open("", 0)
c = TCPSocket.open(*Socket.unpack_sockaddr_in(serv.getsockname).reverse)
s = serv.accept
addr = c.getpeername
p addr #=> "\002\000\267\214\177\000\000\001\000\000\000\000\000\000\000\000"
p Socket.unpack_sockaddr_in(addr... -
BasicSocket
# getsockname -> String (36610.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... -
BasicSocket
# recvmsg _ nonblock(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] (36610.0) -
recvmsg(2) を用いてノンブロッキング方式でメッセージを受け取ります。
...recvmsg(2) を用いてノンブロッキング方式でメッセージを受け取ります。
ブロッキングの有無以外は BasicSocket#recvmsg と同じです。
詳しくはそちらを参照してください。
@param maxmesglen 受け取るメッセージの最大長
@param flags... -
BasicSocket
# sendmsg(mesg , flags=0 , dest _ sockaddr=nil , *controls) -> Integer (36610.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
# sendmsg _ nonblock(mesg , flags=0 , dest _ sockaddr=nil , *controls) -> Integer (36610.0) -
sendmsg(2) を用いてノンブロッキング方式でメッセージを送ります。
...cSocket#sendmsg を見てください。
@return 送ったバイト数
@param mesg メッセージ文字列
@param flags フラグ(Socket::MSG_* という定数の bitwise OR を取ったもの)
@param dest_sockaddr 通信先のアドレス
@param controls 補助データの配列
@see BasicSocket#... -
Addrinfo
# ipv6 _ mc _ global? -> bool (27310.0) -
IPv6 のマルチキャスト(グローバルスコープ) アドレスであれば真を返します。
IPv6 のマルチキャスト(グローバルスコープ)
アドレスであれば真を返します。 -
Addrinfo
# ipv6 _ mc _ orglocal? -> bool (27310.0) -
IPv6 のマルチキャスト(組織(organization)ローカルスコープ) アドレスであれば真を返します。
IPv6 のマルチキャスト(組織(organization)ローカルスコープ)
アドレスであれば真を返します。 -
Socket
:: AncillaryData # cmsg _ is?(level , type) -> bool (27310.0) -
自身の 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) #=> false
ancdata.cmsg_is?(:SOCKET, :RIGHTS)......#=> false
@param level 一致を確認する cmsg_level (文字列、シンボル、整数)
@param type 一致を確認する cmsg_type (文字列、シンボル、整数)
@see Socket::AncillaryData#level, Socket::AncillaryData#type... -
BasicSocket
# getpeereid -> [Integer , Integer] (19510.0) -
Unix ドメインソケットにおいて接続相手の euid と egid を 返します。
..., 2番目の要素が egid です。
ソケットが Unix ドメインソケットでない場合の返り値は
不定です。
require 'socket'
Socket.unix_server_loop("/tmp/sock") {|s|
begin
euid, egid = s.getpeereid
# Check the connected client is myself or not.... -
Socket
:: AncillaryData # ip _ pktinfo -> [Addrinfo , Integer , Addrinfo] (19210.0) -
自身の type が IP_PKTINFO である場合、保持しているデータ (アドレス、インターフェースのインデックス、ローカルアドレス) を3要素の配列で返します。
...張であり、システムによっては使えない場合があります。
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, spec_dest)
p ancdata.ip_pktinfo
#=> [#<Addrinfo:......127.0.0.1>, 0, #<Addrinfo: 127.0.0.1>]
@raise TypeError level, type が IPPROTO_IP, IP_PKTINFO でない場合に
発生します。
@see Socket::AncillaryData.ip_pktinfo,
Socket::Constants::IP_PKTINFO... -
BasicSocket
# recvmsg(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] (18910.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
:: AncillaryData # int -> Integer (18910.0) -
自身が保持している 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::AncillaryData.int... -
Socket
:: AncillaryData # ipv6 _ pktinfo -> [Addrinfo , Integer] (18910.0) -
自身の type が IPV6_PKTINFO である場合、保持しているデータ (アドレス、インターフェースのインデックス) を2要素の配列で返します。
...。
require 'socket'
addr = Addrinfo.ip("::1")
ifindex = 0
ancdata = Socket::AncillaryData.ipv6_pktinfo(addr, ifindex)
p ancdata.ipv6_pktinfo #=> [#<Addrinfo: ::1>, 0]
@see Socket::AncillaryData.ipv6_pktinfo,
Socket::AncillaryData#ipv6_pktinfo_addr,
Socket::AncillaryData#ipv......6_pktinfo_ifindex,
Socket::Constants::IPV6_PKTINFO... -
Socket
:: Option # int -> Integer (18910.0) -
オプションのデータ(内容)を整数に変換して返します。
...オプションのデータ(内容)を整数に変換して返します。
@raise TypeError dataのバイト数が不適切である(sizeof(int)と異なる)場合に発生します
@see Socket::Option#data... -
Addrinfo
# canonname -> String|nil (18610.0) -
カノニカル名を文字列で返します。
...返します。
カノニカル名は Addrinfo.getaddrinfo に Socket::AI_CANONINAME
を指定した場合にセットされます。
require 'socket'
list = Addrinfo.getaddrinfo("www.ruby-lang.org", 80, :INET, :STREAM, nil, Socket::AI_CANONNAME)
p list[0] #=> #<Addrinfo: 221.186.184.68:80... -
Addrinfo
# inspect _ sockaddr -> String (18610.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
# ip _ unpack -> [String , Integer] (18610.0) -
IP アドレスとポート番号を 2 要素の配列で返します。
...IP アドレスとポート番号を 2 要素の配列で返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ip_unpack #=> ["127.0.0.1", 80]
Addrinfo.tcp("::1", 80).ip_unpack #=> ["::1", 80]
@see Addrinfo#ip_address, Addrinfo#ip_port... -
Addrinfo
# listen(backlog=5) -> Socket (18610.0) -
自身のアドレスにバインドされたソケットを作成し、 listen(2) を実行します。
...渡されたときにはそのブロックに生成された Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、生成された Socket
オブジェクトが返されます。
@param backlog バ... -
Addrinfo
# listen(backlog=5) {|sock| . . . } -> object (18610.0) -
自身のアドレスにバインドされたソケットを作成し、 listen(2) を実行します。
...渡されたときにはそのブロックに生成された Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、生成された Socket
オブジェクトが返されます。
@param backlog バ... -
Addrinfo
# unix _ path -> String (18610.0) -
Unix domain socket の path を文字列で返します。
...Unix domain socket の path を文字列で返します。
require 'socket'
Addrinfo.unix("/tmp/sock").unix_path #=> "/tmp/sock"
@raise SocketError アドレスが Unix domain socket のものでない場合に発生します... -
BasicSocket
# getsockopt(level , optname) -> Socket :: Option (18610.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
# recv _ nonblock(maxlen , flags = 0) -> String (18610.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。
...ンブロッキングモードに設定した後、
recvfrom(2) でソケットからデータを受け取ります。
引数、返り値は BasicSocket#recv と同じです。
recvfrom(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
@param max... -
BasicSocket
# send(mesg , flags , dest _ sockaddr = nil) -> Integer (18610.0) -
ソケットを介してデータを送ります。flags に関しては send(2) を参照してください。connect していないソケット に対しては送り先である dest_sockaddr を指定する必要があります。実際に送っ たデータの長さを返します。
...レス構造体を pack した文字列」を指定します。
@raise Errno::EXXX データの送信に失敗した場合に発生します。
例:
require 'socket'
s = UDPSocket.new
sockaddr = Socket.sockaddr_in("discard", "localhost")
s.send("The king has donkey ears!", 0, sockaddr)... -
Socket
# listen(backlog) -> 0 (18610.0) -
listen(2) と同じ働きをします。
listen(2) と同じ働きをします。
0 を返します。
@param backlog 接続を保留できる最大数
@return 0 を返します。 -
Socket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Addrinfo] (18610.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) を呼び出します。
...ソケットをノンブロッキングモードに設定した後、
recvfrom(2) を呼び出します。
引数、返り値は Socket#recvfrom と同じです。
recvfrom(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
Errno::EWOULDBLOCK、Er... -
Socket
:: AncillaryData # ipv6 _ pktinfo _ ifindex -> Integer (18610.0) -
自身の type が IPV6_PKTINFO である場合、保持しているデータ (アドレス、インターフェースのインデックス) のインデックスを返します。
...e '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::AncillaryData#ipv6_pktinfo,
Socket::AncillaryData#ipv6_pktinfo_addr,
Socket::C... -
Socket
:: Ifaddr # flags -> Integer (18610.0) -
self に指定された flags の値を返します。
self に指定された flags の値を返します。 -
Socket
:: Ifaddr # ifindex -> Integer (18610.0) -
self のインターフェイスのインデックスを返します。
self のインターフェイスのインデックスを返します。 -
Socket
:: Ifaddr # inspect -> String (18610.0) -
self の情報を人間に読みやすい文字列にして返します。
self の情報を人間に読みやすい文字列にして返します。 -
Socket
:: Ifaddr # name -> String (18610.0) -
self のインターフェイス名を返します。
self のインターフェイス名を返します。 -
Socket
:: Option # optname -> Integer (18610.0) -
ソケットのオプション名を表す整数を返します。
ソケットのオプション名を表す整数を返します。 -
TCPServer
# listen(backlog) -> 0 (18610.0) -
listen(2) を実行します。 (Socket#listenと同じ)
...listen(2) を実行します。
(Socket#listenと同じ)
backlog は、クライアントからの接続要求を保留できる数です。
listen(2) が成功すれば 0 を返します。
失敗すれば 例外 Errno::EXXX が発生します。
@param backlog backlog は、クライアント... -
UDPSocket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Array] (18610.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。
...ットからデータを受け取ります。
maxlen で受け取るデータの最大バイト数を指定します。
flags はフラグで、Socket::MSG_* の bitwise OR を渡します。
詳しくは recvfrom(2) を参照してください。
返り値はデータの文字列と送り元の......可能であることを意味する例外には、IO::WaitReadable が extend
されています。
require 'socket'
s1 = UDPSocket.new
s1.bind("127.0.0.1", 0)
s2 = UDPSocket.new
s2.bind("127.0.0.1", 0)
s2.connect(*s1.addr.values_at(3,1))
s1.connect(*s2.addr.values_at(3,1))
s1.sen......emulate blocking recvfrom
p s2.recvfrom_nonblock(10)
#=> ["aaa", ["AF_INET", 33302, "localhost.localdomain", "127.0.0.1"]]
rescue IO::WaitReadable
IO.select([s2])
retry
end
@param maxlen 受け取るデータの最大バイト数
@param flags フラグ
@see IPSocket#recvfrom... -
UDPSocket
# send(mesg , flags) -> Integer (18610.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 と同じです... -
UDPSocket
# send(mesg , flags , host , port) -> Integer (18610.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 と同じです... -
UDPSocket
# send(mesg , flags , sockaddr _ to) -> Integer (18610.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 と同じです... -
UNIXServer
# listen(backlog) -> 0 (18610.0) -
listen(2) を実行します。 (Socket#listenと同じ)
...listen(2) を実行します。
(Socket#listenと同じ)
backlog は、クライアントからの接続要求を保留できる数です。
listen(2) が成功すれば 0 を返します。
失敗すれば 例外 Errno::EXXX が発生します。
@param backlog バックログの最大数(接... -
UNIXSocket
# addr -> [String , String] (9910.0) -
ソケットの接続情報を表す配列を返します。配列の各要素は第1要 素が文字列 "AF_UNIX"、第2要素がパスを表す文字列です。
...す。
例:
require 'socket'
UNIXServer.open("/tmp/s") {|serv|
p serv.addr #=> ["AF_UNIX", "/tmp/s"]
}
UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
p c.peeraddr #=> ["AF_UNIX", "/tmp/s"]
p c.addr #=> ["AF_UNIX", ""]
}
@see UNIXSocket#peeraddr... -
UNIXSocket
# peeraddr -> [String , String] (9910.0) -
接続相手先ソケットの情報を表す配列を返します。配列の各要素は第1要 素が文字列 "AF_UNIX"、第2要素がパスを表す文字列です。
...各要素は第1要
素が文字列 "AF_UNIX"、第2要素がパスを表す文字列です。
例:
require 'socket'
UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
p c.peeraddr #=> ["AF_UNIX", "/tmp/s"]
p c.addr #=> ["AF_UNIX", ""]
}
@see UNIXSocket#addr... -
Addrinfo
# afamily -> Integer (9610.0) -
アドレスファミリーを整数で返します。
...アドレスファミリーを整数で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).afamily == Socket::AF_INET #=> true... -
Addrinfo
# ip _ address -> String (9610.0) -
IP アドレスを文字列で返します。
...IP アドレスを文字列で返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ip_address #=> "127.0.0.1"
Addrinfo.tcp("::1", 80).ip_address #=> "::1"
@see Addrinfo#ip_port, Addrinfo#ip_unpack... -
Addrinfo
# ip _ port -> Integer (9610.0) -
ポート番号を整数で返します。
...ポート番号を整数で返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ip_port #=> 80
Addrinfo.tcp("::1", 80).ip_port #=> 80
@see Addrinfo#ip_address, Addrinfo#ip_unpack... -
Addrinfo
# pfamily -> Integer (9610.0) -
プロトコルファミリーを整数で返します。
...プロトコルファミリーを整数で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).pfamily == Socket::PF_INET #=> true... -
Addrinfo
# protocol -> Integer (9610.0) -
ソケットプロトコルを整数で返します。
...ソケットプロトコルを整数で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).protocol == Socket::IPPROTO_TCP #=> true... -
Addrinfo
# socktype -> Integer (9610.0) -
ソケットタイプを整数で返します。
...ソケットタイプを整数で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).socktype == Socket::SOCK_STREAM #=> true... -
Addrinfo
# to _ s -> String (9610.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"... -
Addrinfo
# to _ sockaddr -> String (9610.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"... -
Socket
:: AncillaryData # data -> String (9610.0) -
自身が保持している cmsg data (データ) を返します。
...自身が保持している cmsg data (データ) を返します。
require 'socket'
p Socket::AncillaryData.new(:INET6, :IPV6, :PKTINFO, "").type
#=> ""
@see Socket::AncillaryData.new... -
Socket
:: AncillaryData # family -> Integer (9610.0) -
自身が保持している socket family を返します。
...自身が保持している socket family を返します。
require 'socket'
p Socket::AncillaryData.new(:INET6, :IPV6, :PKTINFO, "").family
#=> 10
@see Socket::AncillaryData.new... -
Socket
:: AncillaryData # level -> Integer (9610.0) -
自身が保持している cmsg level (元プロトコル) を返します。
...自身が保持している cmsg level (元プロトコル) を返します。
require 'socket'
p Socket::AncillaryData.new(:INET6, :IPV6, :PKTINFO, "").level
#=> 41
@see Socket::AncillaryData.new... -
Socket
:: AncillaryData # type -> Integer (9610.0) -
自身が保持している cmsg type (種類) を返します。
...自身が保持している cmsg type (種類) を返します。
require 'socket'
p Socket::AncillaryData.new(:INET6, :IPV6, :PKTINFO, "").type
#=> 2
@see Socket::AncillaryData.new... -
Socket
:: Option # data -> String (9610.0) -
オプションのデータ(内容)を文字列で返します。
...のデータ(内容)を文字列で返します。
内容が整数や真偽値、もしくは struct linger であることがわかっている場合には、
Socket::Option#int, Socket::Option#bool, Socket::Option#linger
を用いて
to_s は過去との互換性のために存在します。... -
Socket
:: Option # family -> Integer (9610.0) -
ソケットファミリを表す整数を返します。
ソケットファミリを表す整数を返します。 -
Socket
:: Option # level -> Integer (9610.0) -
ソケットオプションレベルを表す整数を返します。
ソケットオプションレベルを表す整数を返します。 -
Socket
:: Option # to _ s -> String (9610.0) -
オプションのデータ(内容)を文字列で返します。
...のデータ(内容)を文字列で返します。
内容が整数や真偽値、もしくは struct linger であることがわかっている場合には、
Socket::Option#int, Socket::Option#bool, Socket::Option#linger
を用いて
to_s は過去との互換性のために存在します。... -
UNIXServer
# sysaccept -> Integer (9610.0) -
接続したクライアントのソケットをファイル記述子で返すことを除けば UNIXServer#accept と同じです。
...接続したクライアントのソケットをファイル記述子で返すことを除けば
UNIXServer#accept と同じです。
例:
require 'socket'
UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
p serv.sysaccept #=> 6
}... -
UNIXSocket
# path -> String (9610.0) -
UNIX ソケットのパスを返します。
...UNIX ソケットのパスを返します。
クライアント側はパスを持たないため空文字列となります。
例:
require 'socket'
UNIXServer.open("/tmp/s") {|serv|
p serv.path #=> "/tmp/s"
}... -
UNIXSocket
# recv _ io(klass=IO , mode=nil) -> Integer|IO|object (9610.0) -
ソケットの接続先からファイルディスクリプタを受け取ります。
...ます。
klass が nil でない場合、
klass.for_fd(fd[, mode]) が呼ばれ、その値が返されます。
例:
require 'socket'
s1, s2 = UNIXSocket.pair
s1.send_io STDOUT
io = s2.recv_io
p File.identical?(io, STDOUT) #=> true
@param klass 受け取ったファイルディ... -
UNIXSocket
# recvfrom(maxlen , flags = 0) -> [String [String , String]] (9610.0) -
recvfrom(2) を用いてソケットからメッセージを受け取ります。
...数で指定します。
flags には Socket::MSG_* という名前の定数の bitwise OR を渡します。
戻り値は文字列と相手ソケットのパスのペアです。
例:
require 'socket'
UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
s = serv.accept... -
BasicSocket
# recv(maxlen , flags = 0) -> String (610.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) #=> ""... -
IPSocket
# recvfrom(maxlen , flags = 0) -> Array (610.0) -
recv と同様にソケットからデータを受け取りますが、 戻り値は文字列と相手ソケットのアドレス (形式は IPSocket#addr 参照) のペアです。引数につ いては BasicSocket#recv と同様です。
...からデータを受け取りますが、
戻り値は文字列と相手ソケットのアドレス (形式は
IPSocket#addr 参照) のペアです。引数につ
いては BasicSocket#recv と同様です。
@param maxlen 受け取る文字列の最大の長さを指定します。
@param flags......X recvfrom(2) がエラーになった場合などに発生します。
例:
require 'socket'
s1 = UDPSocket.new
s1.bind("0.0.0.0", 0) # 適当に空いている port を割り当てる
s2 = UDPSocket.new
s2.send("foo", 0, s1.getsockname)
mesg, inet_addr = s1.recvfrom(100)
p mesg... -
Socket
# recvfrom(maxlen , flags=0) -> [String , Addrinfo] (610.0) -
ソケットからデータを受け取ります。
...ソケットからデータを受け取ります。
Socket#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"]... -
TCPServer
# sysaccept -> Integer (610.0) -
接続したクライアントのソケットをファイル記述子で返すことを除けば TCPServer#accept と同じです。
...接続したクライアントのソケットをファイル記述子で返すことを除けば
TCPServer#accept と同じです。
例:
require 'socket'
TCPServer.open("", 0) {|serv|
c = TCPSocket.new(*serv.addr.values_at(3,1))
p serv.sysaccept #=> 6
}...