ライブラリ
- ビルトイン (1)
-
drb
/ acl (1) -
net
/ ftp (1) - openssl (34)
- pathname (1)
- resolv-replace (3)
- socket (99)
-
webrick
/ https (1)
クラス
- ACL (1)
- Addrinfo (17)
- BasicSocket (19)
-
File
:: Stat (1) - IPSocket (3)
-
Net
:: FTP (1) -
OpenSSL
:: SSL :: SSLServer (2) -
OpenSSL
:: SSL :: SSLSocket (25) - Pathname (1)
- SOCKSSocket (1)
- Socket (10)
-
Socket
:: AncillaryData (12) -
Socket
:: Ifaddr (9) -
Socket
:: Option (9) -
Socket
:: UDPSource (3) - TCPServer (2)
- UDPSocket (9)
- UNIXServer (2)
- UNIXSocket (6)
-
WEBrick
:: HTTPRequest (1)
モジュール
キーワード
- accept (5)
-
accept
_ nonblock (4) - addr (4)
-
allow
_ socket? (1) - bind (5)
- bool (1)
- broadaddr (1)
- cert (1)
- cipher (1)
- close (1)
- closed? (1)
-
cmsg
_ is? (1) - connect (6)
-
connect
_ address (1) -
connect
_ from (2) -
connect
_ nonblock (2) -
connect
_ to (2) - context (1)
- data (2)
-
do
_ not _ reverse _ lookup (1) -
do
_ not _ reverse _ lookup= (2) - dstaddr (1)
- family (2)
-
family
_ addrinfo (2) - fcntl (1)
- flags (1)
- getpeereid (1)
- getpeername (1)
- getsockname (1)
- getsockopt (2)
- hostname (1)
- hostname= (1)
- ifindex (1)
- inspect (1)
-
inspect
_ sockaddr (1) - int (2)
- io (1)
-
ip
_ pktinfo (1) -
ipv6
_ pktinfo (1) -
ipv6
_ pktinfo _ addr (1) -
ipv6
_ pktinfo _ ifindex (1) -
ipv6
_ to _ ipv4 (1) - ipv6only! (1)
- level (2)
- linger (1)
- listen (3)
-
local
_ address (2) - name (1)
- netmask (1)
- optname (1)
- parse (1)
- path (1)
-
peer
_ cert (1) -
peer
_ cert _ chain (1) - peeraddr (3)
- pending (1)
-
post
_ connection _ check (1) - recv (1)
-
recv
_ io (1) -
recv
_ nonblock (1) - recvfrom (3)
-
recvfrom
_ nonblock (2) - recvmsg (1)
-
recvmsg
_ nonblock (1) -
remote
_ address (2) - reply (1)
- send (5)
-
send
_ io (1) - sendmsg (1)
-
sendmsg
_ nonblock (1) - session (1)
- session= (1)
-
session
_ reused? (1) -
set
_ socket (1) - setsockopt (3)
- shutdown (2)
- socket? (2)
- socktype (1)
- state (1)
-
sync
_ close (1) -
sync
_ close= (1) - sysaccept (1)
- sysclose (1)
- sysread (1)
- syswrite (1)
-
to
_ io (1) -
to
_ s (1) -
to
_ sockaddr (1) - type (1)
-
unix
_ path (1) -
unix
_ rights (1) - unpack (1)
-
verify
_ result (1) - vhid (1)
検索結果
先頭5件
-
BasicSocket
# setsockopt(socketoption) -> 0 (46030.0) -
ソケットのオプションを設定します。setsockopt(2) を参照してください。
ソケットのオプションを設定します。setsockopt(2)
を参照してください。
level, optname には Socket::SOL_SOCKET や Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いることができます。
optval には文字列、整数、真偽値(true or false)を渡すことができます。
文字列の場合には setsockopt(2) にはその文字列と
長さが渡されます。整数の場合はintへのポイン... -
BasicSocket
# getsockopt(level , optname) -> Socket :: Option (45904.0) -
ソケットのオプションを取得します。getsockopt(2) を参照してください。 取得したオプションのデータを Socket::Option で返します。
ソケットのオプションを取得します。getsockopt(2)
を参照してください。
取得したオプションのデータを Socket::Option で返します。
level, optname には Socket::SOL_SOCKET や Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いることができます。
@param level getsockopt(2) の 第二引数のlevel
@param optname gets... -
BasicSocket
# setsockopt(level , optname , optval) -> 0 (45730.0) -
ソケットのオプションを設定します。setsockopt(2) を参照してください。
ソケットのオプションを設定します。setsockopt(2)
を参照してください。
level, optname には Socket::SOL_SOCKET や Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いることができます。
optval には文字列、整数、真偽値(true or false)を渡すことができます。
文字列の場合には setsockopt(2) にはその文字列と
長さが渡されます。整数の場合はintへのポイン... -
BasicSocket
# getsockname -> String (45604.0) -
ソケットの情報を取得します。sockaddr 構造体をパックした 文字列を返します。getsockname(2) を参照してください。
ソケットの情報を取得します。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 ... -
OpenSSL
:: SSL :: SocketForwarder # getsockopt(level , optname) -> String (45604.0) -
ラップされているソケットのオプションを設定します。
ラップされているソケットのオプションを設定します。
BasicSocket#getsockopt と同様です。
@param level getsockopt(2) の 第二引数のlevel に相当する整数を指定します
@param optname getsockopt(2) の 第三引数のoption_name に相当する整数を指定します -
OpenSSL
:: SSL :: SocketForwarder # setsockopt(level , optname , optval) -> 0 (45604.0) -
ラップされているソケットのオプションを設定します。
ラップされているソケットのオプションを設定します。
BasicSocket#setsockopt と同様です。
@param level setsockopt(2) の level に相当する整数を指定します
@param optname setsockopt(2) の option_name に相当する整数を指定します
@param optval 設定される値を文字列で指定します。
@raise Errno::EXXX オプションの設定に失敗した場合発生します。 -
Net
:: FTP # set _ socket(sock , get _ greeting = true) -> nil (37309.0) -
FTP のコントロール接続の ソケットを TCPSocket オブジェクト sock に設定します。
FTP のコントロール接続の
ソケットを TCPSocket オブジェクト sock に設定します。
get_greeting に偽が与えられると、
set_socket は通信先を設定するだけで sock に対する操作を
何も行ないません。
get_greeting が真ならば、通信先を sock に
設定したあと、通常FTPサーバが接続時に送ってくるメッセージを読み込みます。
通常このメソッドは使うべきではありません。このライブラリの
実装を理解した上で必要な場合のみ利用してください。
@param sock コントロール接続に使うソケットを指定します。
@param get_gre... -
Addrinfo
# inspect _ sockaddr -> String (36640.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_sockaddr #=> "/tmp/sock" -
Addrinfo
# socktype -> Integer (36622.0) -
ソケットタイプを整数で返します。
ソケットタイプを整数で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).socktype == Socket::SOCK_STREAM #=> true -
ACL
# allow _ socket?(soc) -> bool (36604.0) -
ソケットに関連付けられたアドレスが ACL で許可されているならば 真を返します。
ソケットに関連付けられたアドレスが ACL で許可されているならば
真を返します。
@param soc 判定対象のソケット -
File
:: Stat # socket? -> bool (36604.0) -
ソケットの時に真を返します。
ソケットの時に真を返します。
//emlist[][ruby]{
Dir.glob("/tmp/*"){|file|
if File::Stat.new(file).socket?
printf "%s\n", file
end
}
#例
#=> /tmp/uimhelper-hogehoge
#...
//} -
Pathname
# socket? -> bool (36604.0) -
FileTest.socket?(self.to_s) と同じです。
FileTest.socket?(self.to_s) と同じです。
@see FileTest.#socket? -
Socket
:: AncillaryData # timestamp -> Time (27676.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... -
Socket
# connect(server _ sockaddr) -> 0 (27622.0) -
connect(2) でソケットを接続します。
connect(2) でソケットを接続します。
server_sockaddr は、
lib:socket#pack_string
もしくは Addrinfo オブジェクト
です。
0 を返します。
@param server_sockaddr 接続先アドレス
@raise Errno::EXXX connect(2) がエラーを報告した場合に発生します。詳しくは
man を参照してください。
たとえば IPv4 の TCP ソケットを生成し、connect で www.ruby-lang.org:80 に接続するには以下のようにします。
例:
require... -
Socket
# connect _ nonblock(server _ sockaddr) -> 0 (27622.0) -
ソケットをノンブロッキングモードに設定した後、 connect(2) を呼び出します。
ソケットをノンブロッキングモードに設定した後、
connect(2) を呼び出します。
引数、返り値は Socket#connect と同じです。
connect が EINPROGRESS エラーを報告した場合、その例外(Errno::EINPROGRESS)
には IO::WaitWritable が Object#extend されます。
これを connect_nonblock をリトライするために使うことができます。
# Pull down Google's web page
require 'socket'
include Socket::Constants
... -
Addrinfo
# to _ sockaddr -> String (27604.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
# shutdown(how = Socket :: SHUT _ RDWR) -> 0 (27604.0) -
ソケットの以降の接続を終了させます。
ソケットの以降の接続を終了させます。
how の値によって以下のように接続が終了します。
* 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_R... -
OpenSSL
:: SSL :: SSLSocket # context -> OpenSSL :: SSL :: SSLContext (27604.0) -
SSLSocket オブジェクトを生成する時に渡されたコンテクストを返します。
SSLSocket オブジェクトを生成する時に渡されたコンテクストを返します。
@see OpenSSL::SSL::SSLSocket.new -
OpenSSL
:: SSL :: SSLSocket # hostname=(hostname) (27604.0) -
TLS の Server Name Indication(SNI) 拡張で利用するサーバのホスト名を設定します。
TLS の Server Name Indication(SNI) 拡張で利用するサーバのホスト名を設定します。
Server Name Indication については 3546 を参照してください。
このメソッドはハンドシェイク時にクライアント側がサーバ側に
サーバのホスト名を伝えるために用います。そのため、
クライアント側が OpenSSL::SSL::SSLSocket#connect を呼ぶ前に
このメソッドでホスト名を指定する必要があります。
hostname に nil を渡すと SNI 拡張を利用しません。
サーバ側については OpenSSL::SSL::SSLCont... -
OpenSSL
:: SSL :: SSLSocket # syswrite(string) -> Integer (27604.0) -
データをバッファを経由せずに暗号化通信路に書き込みます。
データをバッファを経由せずに暗号化通信路に書き込みます。
書き込んだバイト数を整数で返します。
基本的にはこのメソッドは使わず、OpenSSL::Buffering の
メソッドを使ってデータを書き込むべきです。
IO#syswrite と同様です。
@param string 書き込むデータ文字列
@raise OpenSSL::SSL::SSLError 書き込みに失敗した場合に発生します -
BasicSocket
# do _ not _ reverse _ lookup -> bool (27376.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
}
BasicSock... -
Socket
# accept -> Array (27340.0) -
新しい接続を受け付けて、新しい接続に対するソケットとアドレスの ペアを返します。accept(2) を参照。
新しい接続を受け付けて、新しい接続に対するソケットとアドレスの
ペアを返します。accept(2) を参照。
たとえば IPv4 の TCP サーバソケットを生成し、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)
s... -
BasicSocket
# getpeereid -> [Integer , Integer] (27322.0) -
Unix ドメインソケットにおいて接続相手の euid と egid を 返します。
Unix ドメインソケットにおいて接続相手の euid と egid を
返します。
配列の最初の要素が euid, 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.
next if euid ... -
BasicSocket
# connect _ address -> Addrinfo (27304.0) -
ローカルマシン内で接続するのに適当なアドレスを Addrinfo オブジェクトで返します。
ローカルマシン内で接続するのに適当なアドレスを Addrinfo
オブジェクトで返します。
BasicSocket#local_address の返り値
以下の点を除いては同じものを返します。
* IPv4 の不定アドレス(0.0.0.0) は IPv4 のループバックアドレス(127.0.0.1)
に置換される
* IPv6 の不定アドレス(::) は IPv6 のループバックアドレス(::1)
に置換される
BasicSocket#local_address が接続先として不適なアドレスを返す場合は
例外 SocketError が発生します。
requ... -
BasicSocket
# do _ not _ reverse _ lookup=(bool) (27304.0) -
アドレスからホスト名への逆引きの設定をソケットごとに設定します。
アドレスからホスト名への逆引きの設定をソケットごとに設定します。
@param bool この値が真ならアドレスからホスト名への逆引きを行わなくなります。
@see BasicSocket#do_not_reverse_lookup -
BasicSocket
# getpeername -> String (27304.0) -
接続の相手先のソケットの情報を取得します。sockaddr 構造体をパッ クした文字列を返します。getpeername(2) を参照してください。
接続の相手先のソケットの情報を取得します。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\... -
BasicSocket
# remote _ address -> Addrinfo (27304.0) -
getpeername(2) で得られたリモートアドレス情報を Addrinfo オブジェクトとして返します。
getpeername(2) で得られたリモートアドレス情報を
Addrinfo オブジェクトとして返します。
返されたオブジェクトの Addrinfo#protocol は 0 を
返すことに注意してください。
require 'socket'
TCPSocket.open("www.ruby-lang.org", 80) {|s|
p s.remote_address #=> #<Addrinfo: 221.186.184.68:80 TCP>
}
TCPServer.open("127.0.0.1", 1728) {|serv|
c = TCP... -
OpenSSL
:: SSL :: SSLSocket # accept -> self (27304.0) -
TLS/SSL 通信をサーバモードとして開始し、クライアントからの ハンドシェイク開始を待ち、クライアントとのハンドシェイクを実行します。
TLS/SSL 通信をサーバモードとして開始し、クライアントからの
ハンドシェイク開始を待ち、クライアントとのハンドシェイクを実行します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
@see OpenSSL::SSL::SSLSocket#connect,
OpenSSL::SSL::SSLSocket#accept_nonblock -
OpenSSL
:: SSL :: SSLSocket # accept _ nonblock -> self (27304.0) -
ノンブロッキング方式で TLS/SSL 通信をサーバモードとして開始し、 クライアントとのハンドシェイクを実行します。
ノンブロッキング方式で
TLS/SSL 通信をサーバモードとして開始し、
クライアントとのハンドシェイクを実行します。
IO が読み込み待ち、もしくは書き込み待ちになった場合は例外を
発生させ、ハンドシェイクを中断します。IO が読み込み/書き込み
可能状態になってからこのメソッドをもう一度呼ぶと
ハンドシェイクを再開します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
(実際は OpenSSL::S... -
OpenSSL
:: SSL :: SSLSocket # cert -> OpenSSL :: X509 :: Certificate | nil (27304.0) -
自分自身を証明する証明書を返します。
自分自身を証明する証明書を返します。
自分自身を証明する証明書を使わなかった場合は nil を返します。
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼んだ
場合も nil を返します。
@see OpenSSL::SSL::SSLContext#cert -
OpenSSL
:: SSL :: SSLSocket # connect -> self (27304.0) -
TLS/SSl 通信をクライアントモードとして開始し、 サーバとのハンドシェイクを実行します。
TLS/SSl 通信をクライアントモードとして開始し、
サーバとのハンドシェイクを実行します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
@see OpenSSL::SSL::SSLSocket#accept,
OpenSSL::SSL::SSLSocket#connect_nonblock -
OpenSSL
:: SSL :: SSLSocket # connect _ nonblock -> self (27304.0) -
ノンブロッキング方式で TLS/SSL 通信をクライアントモードとして開始し、 サーバとのハンドシェイクを実行します。
ノンブロッキング方式で
TLS/SSL 通信をクライアントモードとして開始し、
サーバとのハンドシェイクを実行します。
IO が読み込み待ち、もしくは書き込み待ちになった場合は例外を
発生させ、ハンドシェイクを中断します。IO が読み込み/書き込み
可能状態になってからこのメソッドをもう一度呼ぶと
ハンドシェイクを再開します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
@raise OpenSSL::SSL::S... -
OpenSSL
:: SSL :: SSLSocket # hostname -> String | nil (27304.0) -
TLS の Server Name Indication 拡張で利用するサーバのホスト名を返します。
TLS の Server Name Indication 拡張で利用するサーバのホスト名を返します。
OpenSSL::SSL::SSLSocket#hostname= で設定した値がそのまま返されます。
設定していない場合は nil を返します。
@see OpenSSL::SSL::SSLSocket#hostname= -
OpenSSL
:: SSL :: SSLSocket # peer _ cert -> OpenSSL :: X509 :: Certificate | nil (27304.0) -
接続相手の証明書オブジェクトを返します。
接続相手の証明書オブジェクトを返します。
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼ぶと nil を返します。
@see OpenSSL::SSL::SSLSocket#peer_cert_chain -
OpenSSL
:: SSL :: SSLSocket # peer _ cert _ chain -> [OpenSSL :: X509 :: Certificate] | nil (27304.0) -
接続相手の証明書チェインを OpenSSL::X509::Certificate オブジェクト の配列で返します。
接続相手の証明書チェインを OpenSSL::X509::Certificate オブジェクト
の配列で返します。
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼ぶと nil を返します。
以下の順の配列を返します。
[接続相手の証明書, 下位CAの証明書,... 中間CAの証明書]
ルート CA の証明書は含まれないことに注意してください。
@see OpenSSL::SSL::SSLSocket#peer_cert -
OpenSSL
:: SSL :: SSLSocket # post _ connection _ check(hostname) -> true (27304.0) -
接続後検証を行います。
接続後検証を行います。
検証に成功した場合は true を返し、失敗した場合は例外
OpenSSL::SSL::SSLError を発生させます。
OpenSSL の API では、
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
での検証は実用的には不完全です。
CA が証明書に署名してそれが失効していないことしか確認しません。
実用上は証明書に記載されている事項を見て、接続先が妥当であるかを確認する
必要があります。通常は接続先ホストの FQDN と証明書に記載されている FQDN が
一致しているか... -
OpenSSL
:: SSL :: SSLSocket # state -> String (27304.0) -
現在の状態をアルファベット 6 文字の文字列で返します。
現在の状態をアルファベット 6 文字の文字列で返します。 -
OpenSSL
:: SSL :: SSLSocket # to _ io -> IO (27304.0) -
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
@see OpenSSL::SSL::SSLSocket.new -
OpenSSL
:: SSL :: SSLSocket # verify _ result -> Integer (27304.0) -
検証結果のエラーコードを整数値で返します。
検証結果のエラーコードを整数値で返します。
エラーコードの整数値は OpenSSL::X509 に定数が定義されています。
詳しくは c:OpenSSL::X509#verify_error を見てください。
検証に成功した場合は OpenSSL::X509::V_OK を返します。 -
OpenSSL
:: SSL :: SocketForwarder # do _ not _ reverse _ lookup=(bool) (27304.0) -
真を渡すとアドレスからホスト名への逆引きを行わなくなります。
真を渡すとアドレスからホスト名への逆引きを行わなくなります。
BasicSocket#do_not_reverse_lookup と同様です。
@param bool 真で逆引きを抑制します -
OpenSSL
:: SSL :: SocketForwarder # fcntl(cmd , arg=0) -> Integer (27304.0) -
ラップされているソケットに対してシステムコール fcntl を実行します。
ラップされているソケットに対してシステムコール fcntl を実行します。
IO#fcntl と同様です。
@param cmd IO に対するコマンドを、添付ライブラリ fcntl が提供している定数で指定します。
@param arg cmd に対する引数を整数、文字列、booleanのいずれかで指定します。
@raise Errno::EXXX fcntl の実行に失敗した場合に発生します。
@raise IOError 既に close されている場合に発生します。 -
Socket
# accept _ nonblock -> Array (27304.0) -
ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。
ソケットをノンブロッキングモードに設定した後、
accept(2) を呼び出します。
引数、返り値は Socket#accept と同じです。
accept(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。 -
Socket
# listen(backlog) -> 0 (27304.0) -
listen(2) と同じ働きをします。
listen(2) と同じ働きをします。
0 を返します。
@param backlog 接続を保留できる最大数
@return 0 を返します。 -
Socket
# sysaccept -> Array (27304.0) -
接続したクライアントのファイル記述子とアドレスのペアを返すことを除 けば Socket#accept と同じです。
接続したクライアントのファイル記述子とアドレスのペアを返すことを除
けば Socket#accept と同じです。 -
Socket
:: AncillaryData # data -> String (27304.0) -
自身が保持している cmsg data (データ) を返します。
自身が保持している cmsg data (データ) を返します。
require 'socket'
p Socket::AncillaryData.new(:INET6, :IPV6, :PKTINFO, "").type
#=> ""
@see Socket::AncillaryData.new -
Socket
:: AncillaryData # int -> Integer (27304.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 # ip _ pktinfo -> [Addrinfo , Integer , Addrinfo] (27304.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 # ipv6 _ pktinfo -> [Addrinfo , Integer] (27304.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 (27304.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 (27304.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 # type -> Integer (27304.0) -
自身が保持している cmsg type (種類) を返します。
自身が保持している cmsg type (種類) を返します。
require 'socket'
p Socket::AncillaryData.new(:INET6, :IPV6, :PKTINFO, "").type
#=> 2
@see Socket::AncillaryData.new -
Socket
:: AncillaryData # unix _ rights -> [IO] | nil (27304.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
:: Ifaddr # dstaddr -> Addrinfo | nil (27304.0) -
self の宛先アドレスを Addrinfo オブジェクトで返します。 self.flags で Socket::IFF_POINTOPOINT が有効ではない場合は nil を返します。
self の宛先アドレスを Addrinfo オブジェクトで返します。
self.flags で Socket::IFF_POINTOPOINT が有効ではない場合は nil を返します。 -
Socket
:: Ifaddr # inspect -> String (27304.0) -
self の情報を人間に読みやすい文字列にして返します。
self の情報を人間に読みやすい文字列にして返します。 -
Socket
:: Ifaddr # netmask -> Addrinfo | nil (27304.0) -
self のネットマスクを Addrinfo オブジェクトで返します。 self が利用できない場合は nil を返します。
self のネットマスクを Addrinfo オブジェクトで返します。
self が利用できない場合は nil を返します。 -
Socket
:: Option # data -> String (27304.0) -
オプションのデータ(内容)を文字列で返します。
オプションのデータ(内容)を文字列で返します。
内容が整数や真偽値、もしくは struct linger であることがわかっている場合には、
Socket::Option#int, Socket::Option#bool, Socket::Option#linger
を用いて
to_s は過去との互換性のために存在します。 -
Socket
:: Option # int -> Integer (27304.0) -
オプションのデータ(内容)を整数に変換して返します。
オプションのデータ(内容)を整数に変換して返します。
@raise TypeError dataのバイト数が不適切である(sizeof(int)と異なる)場合に発生します
@see Socket::Option#data -
Socket
:: Option # optname -> Integer (27304.0) -
ソケットのオプション名を表す整数を返します。
ソケットのオプション名を表す整数を返します。 -
Socket
:: Option # to _ s -> String (27304.0) -
オプションのデータ(内容)を文字列で返します。
オプションのデータ(内容)を文字列で返します。
内容が整数や真偽値、もしくは struct linger であることがわかっている場合には、
Socket::Option#int, Socket::Option#bool, Socket::Option#linger
を用いて
to_s は過去との互換性のために存在します。 -
Socket
:: UDPSource # remote _ address -> Addrinfo (27304.0) -
リモート側のアドレス情報を Addrinfo オブジェクトで返します。
リモート側のアドレス情報を Addrinfo オブジェクトで返します。 -
UDPSocket
# connect(host , port) -> 0 (27304.0) -
ソケットを host の port に connect(2) します。
ソケットを host の port に connect(2) します。
これによって UDPSocket#send で送り先のアドレスを指定せずに
データを送ることができます(connect しなくとも送り先のアドレスを明示すれば
データを送ることができます)。
require 'socket'
u1 = UDPSocket.new
u1.bind("127.0.0.1", 4913)
u2 = UDPSocket.new
u2.connect("127.0.0.1", 4913)
u2.send "uuuu", 0
p u1.recvfrom(10) #=... -
UDPSocket
# connect(host , port) -> Integer (27304.0) -
UDPSocket#connect のパラメータ host の名前解決に resolv ライブラリを使います。
UDPSocket#connect のパラメータ host の名前解決に
resolv ライブラリを使います。
@param host connect するホスト名を文字列で指定します。
@param port connect するポートを指定します。
@raise SocketError 名前解決に失敗した場合に発生します。 -
UNIXSocket
# path -> String (27304.0) -
UNIX ソケットのパスを返します。
UNIX ソケットのパスを返します。
クライアント側はパスを持たないため空文字列となります。
例:
require 'socket'
UNIXServer.open("/tmp/s") {|serv|
p serv.path #=> "/tmp/s"
} -
SOCKSSocket
# close -> nil (27004.0) -
ソケットを閉じます。
ソケットを閉じます。 -
BasicSocket
# recvmsg(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] (18922.0) -
recvmsg(2) を用いてメッセージを受け取ります。
recvmsg(2) を用いてメッセージを受け取ります。
このメソッドはブロックします。ノンブロッキング方式で通信したい
場合は BasicSocket#recvmsg_nonblock を用います。
maxmesglen, maxcontrollen で受け取るメッセージおよび補助データ
(Socket::AncillaryData)の最大長をバイト単位で指定します。
省略した場合は必要なだけ内部バッファを拡大して
データが切れないようにします。
flags では Socket::MSG_* という名前の定数の biwsise OR を取った
ものを渡します。
opts にはその他... -
Addrinfo
# connect -> Socket (18907.0) -
自身のアドレスへソケットを接続します。
自身のアドレスへソケットを接続します。
ブロックが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済み Socket
オブジェクトが返されます。 -
Addrinfo
# connect {|sock| . . . } -> object (18907.0) -
自身のアドレスへソケットを接続します。
自身のアドレスへソケットを接続します。
ブロックが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済み Socket
オブジェクトが返されます。 -
BasicSocket
# recvmsg _ nonblock(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] (18904.0) -
recvmsg(2) を用いてノンブロッキング方式でメッセージを受け取ります。
recvmsg(2) を用いてノンブロッキング方式でメッセージを受け取ります。
ブロッキングの有無以外は BasicSocket#recvmsg と同じです。
詳しくはそちらを参照してください。
@param maxmesglen 受け取るメッセージの最大長
@param flags フラグ
@param maxcontrollen 受け取る補助データの最大長
@param opts ハッシュオプション -
OpenSSL
:: SSL :: SSLServer # accept -> OpenSSL :: SSL :: SSLSocket (18904.0) -
クライアントからの接続を受け付け、接続した SSLSocket オブジェクトを返します。
クライアントからの接続を受け付け、接続した
SSLSocket オブジェクトを返します。
OpenSSL::SSL::SSLServer#start_immediately が真ならば、
SSLSocket#accept を呼び TLS/SSL ハンドシェイクを実行してから
SSLSocket オブジェクトを返します。 -
TCPServer
# accept -> TCPSocket (18904.0) -
クライアントからの接続要求を受け付け、接続した TCPSocket のインスタンスを返します。
クライアントからの接続要求を受け付け、接続した
TCPSocket のインスタンスを返します。
例:
require 'socket'
TCPServer.open("", 0) {|serv|
c = TCPSocket.new(*serv.addr.values_at(3,1))
s = serv.accept
c.write "foo"
p s.recv(10) #=> "foo"
} -
UNIXServer
# accept -> UnixSocket (18904.0) -
クライアントからの接続要求を accept(2)で待ち受け、接続した UNIXSocket のインスタンスを返します。
クライアントからの接続要求を accept(2)で待ち受け、接続した
UNIXSocket のインスタンスを返します。
例:
require 'socket'
UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
s = serv.accept
s.write "from server"
c.write "from client"
p c.recv(20) #=> "from server"
p s.recv(20) #=> "from clie... -
UNIXSocket
# recvfrom(maxlen , flags = 0) -> [String [String , String]] (18904.0) -
recvfrom(2) を用いてソケットからメッセージを受け取ります。
recvfrom(2) を用いてソケットからメッセージを受け取ります。
maxlen で受け取るメッセージの最大長をバイト数で指定します。
flags には Socket::MSG_* という名前の定数の bitwise OR を渡します。
戻り値は文字列と相手ソケットのパスのペアです。
例:
require 'socket'
UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
s = serv.accept
s.send "a", 0
p c.recvfrom(10... -
UNIXServer
# accept _ nonblock -> UnixSocket (18658.0) -
ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。
ソケットをノンブロッキングモードに設定した後、
accept(2) を呼び出します。
接続した
UNIXSocket のインスタンスを返します。
accept(2) がエラーになった場合、Socket#accept と同じ例外が
発生します。
Errno::EWOULDBLOCK, Errno::EAGAIN,
Errno::ECONNABORTED, Errno::EPROTO のいずれかの例外が
発生した場合は、その例外には IO::WaitReadable が extend
されます。それを利用してリトライ可能な例外を掴まえることができます。
require 'socket... -
BasicSocket
# sendmsg(mesg , flags=0 , dest _ sockaddr=nil , *controls) -> Integer (18640.0) -
sendmsg(2) を用いてメッセージを送ります。
sendmsg(2) を用いてメッセージを送ります。
このメソッドはブロックします。ノンブロッキング方式で通信したい
場合は BasicSocket#sendmsg_nonblock を用います。
ソケットが connection-less の場合は dest_sockaddr で
通信先のアドレスを指定しなければなりません。Socket.sockaddr_in
の返り値や Addrinfo オブジェクトを引数として渡すことができます。
controls には 補助データ(ancillary data)を渡します。
Socket::AncillaryData のインスタンスや
3要素(c... -
Addrinfo
# connect _ from(host , port) -> Socket (18607.0) -
引数で指定されたアドレスから 自身のアドレスへソケットを接続します。
引数で指定されたアドレスから
自身のアドレスへソケットを接続します。
接続元のアドレスは Addrinfo#family_addrinfo により生成された
ものが用いられます。
ブロックが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済みSocket
オブジェクトが返されます。
引数で指定したアドレスはソケット接続のローカル側のアドレスになります。
require 'socket'
Addrinfo.tcp("www.ruby-lang.org", 80).co... -
Addrinfo
# connect _ from(host , port) {|sock| . . . } -> object (18607.0) -
引数で指定されたアドレスから 自身のアドレスへソケットを接続します。
引数で指定されたアドレスから
自身のアドレスへソケットを接続します。
接続元のアドレスは Addrinfo#family_addrinfo により生成された
ものが用いられます。
ブロックが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済みSocket
オブジェクトが返されます。
引数で指定したアドレスはソケット接続のローカル側のアドレスになります。
require 'socket'
Addrinfo.tcp("www.ruby-lang.org", 80).co... -
Addrinfo
# connect _ to(host , port) -> Socket (18607.0) -
自身のアドレスから指定したホストへソケット接続します。
自身のアドレスから指定したホストへソケット接続します。
接続元のアドレスは Addrinfo#family_addrinfo により生成された
ものが用いられます。
ブロックが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済み Socket
オブジェクトが返されます。
@param host ホスト(IP アドレスもしくはホスト名)
@param port ポート番号(整数)もしくはサービス名(文字列) -
Addrinfo
# connect _ to(host , port) {|sock| . . . } -> object (18607.0) -
自身のアドレスから指定したホストへソケット接続します。
自身のアドレスから指定したホストへソケット接続します。
接続元のアドレスは Addrinfo#family_addrinfo により生成された
ものが用いられます。
ブロックが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済み Socket
オブジェクトが返されます。
@param host ホスト(IP アドレスもしくはホスト名)
@param port ポート番号(整数)もしくはサービス名(文字列) -
Addrinfo
# listen(backlog=5) -> Socket (18607.0) -
自身のアドレスにバインドされたソケットを作成し、 listen(2) を実行します。
自身のアドレスにバインドされたソケットを作成し、
listen(2) を実行します。
ブロックが渡されたときにはそのブロックに生成された Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、生成された Socket
オブジェクトが返されます。
@param backlog バックログの最大数 -
Addrinfo
# listen(backlog=5) {|sock| . . . } -> object (18607.0) -
自身のアドレスにバインドされたソケットを作成し、 listen(2) を実行します。
自身のアドレスにバインドされたソケットを作成し、
listen(2) を実行します。
ブロックが渡されたときにはそのブロックに生成された Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、生成された Socket
オブジェクトが返されます。
@param backlog バックログの最大数 -
BasicSocket
# send(mesg , flags , dest _ sockaddr = nil) -> Integer (18604.0) -
ソケットを介してデータを送ります。flags に関しては send(2) を参照してください。connect していないソケット に対しては送り先である dest_sockaddr を指定する必要があります。実際に送っ たデータの長さを返します。
ソケットを介してデータを送ります。flags に関しては
send(2) を参照してください。connect していないソケット
に対しては送り先である dest_sockaddr を指定する必要があります。実際に送っ
たデータの長さを返します。
dest_sockaddr にはlib:socket#pack_string
を指定します。
データの送信に失敗した場合は例外 Errno::EXXX が発生します。
@param mesg 送信するデータを文字列で指定します。
@param flags send(2) の flags を参照してください。
@par... -
BasicSocket
# sendmsg _ nonblock(mesg , flags=0 , dest _ sockaddr=nil , *controls) -> Integer (18604.0) -
sendmsg(2) を用いてノンブロッキング方式でメッセージを送ります。
sendmsg(2) を用いてノンブロッキング方式でメッセージを送ります。
詳しくは BasicSocket#sendmsg を見てください。
@return 送ったバイト数
@param mesg メッセージ文字列
@param flags フラグ(Socket::MSG_* という定数の bitwise OR を取ったもの)
@param dest_sockaddr 通信先のアドレス
@param controls 補助データの配列
@see BasicSocket#sendmsg -
OpenSSL
:: SSL :: SSLServer # shutdown(how=Socket :: SHUT _ RDWR) -> 0 (18604.0) -
ソケットの以降の接続を終了させます。
ソケットの以降の接続を終了させます。
詳しくは BasicSocket#shutdown を参照してください。
@param how 接続の終了の仕方を Socket::SHUT_RD, Socket::SHUT_WR,
Socket::SHUT_RDWR などで指定します。 -
OpenSSL
:: SSL :: SSLSocket # cipher -> [String , String , Integer , Integer] (18604.0) -
現在実際に使われている暗号の情報を配列で返します。
現在実際に使われている暗号の情報を配列で返します。
返される配列の形式は以下の例のように [暗号名, TLS/SSLのバージョン, 鍵長, アルゴリズムで使われる bit 数] となります。
["DES-CBC3-SHA", "TLSv1/SSLv3", 168, 168]
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼ぶと nil を返します。 -
Socket
:: Option # unpack(template) -> Array (18604.0) -
data に対し String#unpack を呼び出し、その結果を返します。
data に対し String#unpack を呼び出し、その結果を返します。
このメソッドは過去との互換性のために存在します。 -
TCPServer
# accept _ nonblock -> TCPSocket (18604.0) -
ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。
ソケットをノンブロッキングモードに設定した後、
accept(2) を呼び出します。
返り値は TCPServer#accept と同じです。
accept(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
@raise Errno::EXXX accept(2) がエラーになった場合に発生します。 -
UDPSocket
# send(mesg , flags , dest _ sockaddr=nil) -> Integer (18604.0) -
4 引数の形式で UDPSocket#send 実行したとき、 パラメータ host の名前解決に resolv ライブラリを使います。
4 引数の形式で UDPSocket#send 実行したとき、
パラメータ host の名前解決に
resolv ライブラリを使います。
@param mesg 送るデータを文字列で与えます。
@param flags フラグを指定します。
@param host データを送る先のホストを指定します。
@param port データを送る先のポートを指定します。
@raise SocketError 名前解決に失敗した場合に発生します。 -
UDPSocket
# send(mesg , flags , sockaddr _ to) -> Integer (18604.0) -
UDP ソケットを介してデータを送ります。
UDP ソケットを介してデータを送ります。
flags には Socket::MSG_* という定数の bitwise OR を渡します。
詳しい意味は send(2) を参照してください。
host, port の対、もしくは sockaddr_to で送り先を指定します。
送り先を省略した場合は UDPSocket#connect で接続した
先にデータを送ります。
実際に送ったデータの長さを返します。
sockaddr_to にはlib:socket#pack_string もしくは
Addrinfo オブジェクトを指定します。
host, port に関しては lib:so... -
UNIXSocket
# addr -> [String , String] (18604.0) -
ソケットの接続情報を表す配列を返します。配列の各要素は第1要 素が文字列 "AF_UNIX"、第2要素がパスを表す文字列です。
ソケットの接続情報を表す配列を返します。配列の各要素は第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 #=> [... -
UNIXSocket
# peeraddr -> [String , String] (18604.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
# unix _ path -> String (18340.0) -
Unix domain socket の path を文字列で返します。
Unix domain socket の path を文字列で返します。
require 'socket'
Addrinfo.unix("/tmp/sock").unix_path #=> "/tmp/sock"
@raise SocketError アドレスが Unix domain socket のものでない場合に発生します -
Socket
# recvfrom(maxlen , flags=0) -> [String , Addrinfo] (18340.0) -
ソケットからデータを受け取ります。
ソケットからデータを受け取ります。
BasicSocket#recv と同様ですが、返り値として
データ文字列と相手ソケットのアドレスのペアが返されます。
flags には Socket::MSG_* という定数の bitwise OR を渡します。
詳しくは recvfrom(2) を参照してください。
@param maxlen ソケットから受けとるデータの最大値
@param flags フラグ
@raise Errno::EXXX recvfrom(2) がエラーを報告した場合に発生します。詳しくは
Errno と man を見てください。
例:
requi... -
Addrinfo
# ipv6 _ to _ ipv4 -> Addrinfo|nil (18322.0) -
IPv6 の v4 マップド/互換アドレスを v4 のアドレスに変換します。
IPv6 の v4 マップド/互換アドレスを v4 のアドレスに変換します。
それ以外のアドレスの場合 nil を返します。
require 'socket'
Addrinfo.ip("::192.0.2.3").ipv6_to_ipv4 #=> #<Addrinfo: 192.0.2.3>
Addrinfo.ip("::ffff:192.0.2.3").ipv6_to_ipv4 #=> #<Addrinfo: 192.0.2.3>
Addrinfo.ip("::1").ipv6_to_ipv4 #=> nil
Addrinfo.i... -
BasicSocket
# recv(maxlen , flags = 0) -> String (18304.0) -
ソケットからデータを受け取り、文字列として返します。 maxlen は受け取る最大の長さを指定します。 flags については recv(2) を参照してください。flags の デフォルト値は 0 です。flags の指定に必要な定数は Socket クラスで定義されています。(例: Socket::MSG_PEEK)
ソケットからデータを受け取り、文字列として返します。
maxlen は受け取る最大の長さを指定します。
flags については recv(2) を参照してください。flags の
デフォルト値は 0 です。flags の指定に必要な定数は
Socket クラスで定義されています。(例: Socket::MSG_PEEK)
内部で呼び出す recv(2) が 0 を返した場合、このメソッドは "" を返します。
この意味はソケットによって異なります。
たとえば TCP では EOF を意味しますし、
UDP では空のパケットを読み込んだことを意味します。
@param maxlen 受け取... -
BasicSocket
# recv _ nonblock(maxlen , flags = 0) -> String (18304.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。
ソケットをノンブロッキングモードに設定した後、
recvfrom(2) でソケットからデータを受け取ります。
引数、返り値は BasicSocket#recv と同じです。
recvfrom(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
@param maxlen 受け取る文字列の最大の長さを指定します。
@param flags recv(2) を参照してください。
@raise IOError
@raise Errno::EXXX recvfrom(2) がエラーになった場合などに発生します。 -
OpenSSL
:: SSL :: SSLSocket # pending -> Integer | nil (18304.0) -
OpenSSL内部のバッファが保持している、直ちに読み取り可能な データのバイト数を返します。
OpenSSL内部のバッファが保持している、直ちに読み取り可能な
データのバイト数を返します。
ハンドシェイク開始前には nil を返します。 -
OpenSSL
:: SSL :: SSLSocket # sysread(length , buf=nil) -> String (18304.0) -
データをバッファを経由せずに暗号化通信路から読み込み、 読み込んだデータを文字列で返します。
データをバッファを経由せずに暗号化通信路から読み込み、
読み込んだデータを文字列で返します。
基本的にはこのメソッドは使わず、OpenSSL::Buffering の
メソッドを使ってデータを読み込むべきです。
length で読み込むバイト数を指定します。
bufに文字列を指定するとその文字列のメモリ領域にデータを直接書き込み、
その String オブジェクトを返します。
IO#sysread と同様です。
@param length 読み込むバイト数を指定します
@param buf データを書き込むバッファ
@raise EOFError 入力が終端に逹した場合に発生します
... -
Socket
# bind(my _ sockaddr) -> 0 (18304.0) -
ソケットを my_sockaddr に結合します。bind(2) と同じ働きをします。
ソケットを my_sockaddr に結合します。bind(2)
と同じ働きをします。
@param my_sockaddr lib:socket#pack_stringもしくはAddrinfoオブジェクトを指定します。
@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、Errno::EAGAIN のような待ってからリトライすることが
可能であることを意味する例外には、IO::WaitReadable が extend
されています。
@param maxlen ソケットから受けとるデータの最大値
@param flags フラグ
@rai... -
Socket
:: AncillaryData # cmsg _ is?(level , type) -> bool (18304.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...