クラス
-
ARGF
. class (9) - BasicSocket (44)
- Dir (11)
- File (109)
- IO (249)
- IPSocket (11)
-
OpenSSL
:: SSL :: SSLServer (11) - Pathname (44)
- Random (33)
- Socket (44)
- StringIO (11)
- SystemCallError (11)
- TCPServer (22)
- UDPSocket (44)
- UNIXServer (22)
モジュール
キーワード
- << (11)
-
accept
_ nonblock (33) - advise (11)
- atime (11)
- autoclose= (11)
- binmode (11)
- birthtime (10)
- children (11)
- chmod (11)
- chown (11)
- close (11)
-
close
_ read (11) -
close
_ write (11) -
connect
_ nonblock (11) - ctime (11)
- fcntl (22)
- flock (11)
- flush (11)
- listen (33)
- lstat (11)
- mtime (11)
- pathconf (11)
- pread (7)
- print (11)
- printf (11)
- puts (11)
- rand (33)
- read (22)
-
read
_ nonblock (20) - readpartial (11)
- realdirpath (11)
- realpath (22)
- recv (11)
-
recv
_ nonblock (11) - recvfrom (22)
-
recvfrom
_ nonblock (22) - reopen (33)
- send (44)
- setsockopt (22)
- size (11)
- stat (11)
- sysread (11)
- truncate (22)
-
write
_ nonblock (11)
検索結果
先頭5件
-
SystemCallError
# errno -> Integer | nil (21250.0) -
レシーバに対応するシステム依存のエラーコードを返します。
...は nil を返します。
begin
raise Errno::ENOENT
rescue Errno::ENOENT => err
p err.errno # => 2
p Errno::ENOENT::Errno # => 2
end
begin
raise SystemCallError, 'message'
rescue SystemCallError => err
p err.errno # => nil
end......なお、例外を発生させずにエラーコードを得るには、
Errno::EXXX::Errno 定数を使います。... -
OpenSSL
:: SSL :: SSLServer # listen(backlog=5) -> 0 (9113.0) -
ラップしている TCPServer の TCPServer#listen を呼びだします。
...CPServer#listen
を呼びだします。
通常は TCPServer の初期化時に listen が呼びだされるため
呼ぶ必要はないはずです。
@param backlog クライアントからの接続要求を保留できる数
@raise Errno::EXXX listen(2) が失敗すれば 例外 Errno::EXXX... -
OpenSSL
:: SSL :: SocketForwarder # fcntl(cmd , arg=0) -> Integer (9107.0) -
ラップされているソケットに対してシステムコール fcntl を実行します。
...l を実行します。
IO#fcntl と同様です。
@param cmd IO に対するコマンドを、添付ライブラリ fcntl が提供している定数で指定します。
@param arg cmd に対する引数を整数、文字列、booleanのいずれかで指定します。
@raise Errno::EXXX fcntl......の実行に失敗した場合に発生します。
@raise IOError 既に close されている場合に発生します。... -
IO
# read _ nonblock(maxlen , outbuf = nil , exception: true) -> String | Symbol | nil (6147.0) -
IO をノンブロッキングモードに設定し、 その後で read(2) システムコールにより 長さ maxlen を上限として読み込み、文字列として返します。 EAGAIN, EINTR などは Errno::EXXX 例外として呼出元に報告されます。
...さ maxlen を上限として読み込み、文字列として返します。
EAGAIN, EINTR などは Errno::EXXX 例外として呼出元に報告されます。
発生した例外 がErrno::EAGAIN、 Errno::EWOULDBLOCK である場合は、
その例外オブジェクトに IO::WaitReadable が O......ッファが空でない場合は、read_nonblock はバッファから読み込みます。この場合、read(2) システムコールは呼ばれません。
このメソッドはノンブロッキングモードにする点を除いて IO#readpartial と
同じであることに注意してく......OFError が発生します。ただし、maxlen に 0 が指定されている場合は、空文字列 "" を返します。
@param maxlen 読み込む長さの上限を整数で指定します。
@param outbuf 文字列で指定します。IO#read_nonblock は読み込んだデータを outbuf... -
IO
# write _ nonblock(string , exception: true) -> Integer | :wait _ writable (6137.0) -
IO をノンブロッキングモードに設定し、string を write(2) システムコールで書き出します。
...す。
EAGAIN, EINTR などは例外 Errno::EXXX として呼出元に報告されます。
書き込んだバイト数(つまり返り値)は String#bytesize の
値より小さい可能性があります。
発生した例外 がErrno::EAGAIN、 Errno::EWOULDBLOCK である場合は、
その例......ble が Object#extend
されます。よって IO::WaitWritable を write_nonblock のリトライが必要
かの判定に用いることができます。
@param string 自身に書き込みたい文字列を指定します。
@param exception false を指定すると、書き込み時に Errno:......:EAGAIN、Errno::EWOULDBLOCK が発生
する代わりに :wait_writable を返します。
@raise IOError 自身が書き込み用にオープンされていなければ発生します。
@raise Errno::EXXX write(2) が失敗した場合に発生します。... -
UDPSocket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Array] (6131.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。
...キングモードに設定した後、
recvfrom(2) でソケットからデータを受け取ります。
maxlen で受け取るデータの最大バイト数を指定します。
flags はフラグで、Socket::MSG_* の bitwise OR を渡します。
詳しくは recvfrom(2) を参照してく......がエラーになった場合、
Errno::EAGAIN, Errno::EINTR を含め例外 Errno::EXXX が発生します。
Errno::EWOULDBLOCK、Errno::EAGAIN のような待ってからリトライすることが
可能であることを意味する例外には、IO::WaitReadable が extend
されています......ddr.values_at(3,1))
s1.connect(*s2.addr.values_at(3,1))
s1.send "aaa", 0
begin # 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 受... -
UNIXServer
# accept _ nonblock -> UnixSocket (6131.0) -
ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。
...なった場合、Socket#accept と同じ例外が
発生します。
Errno::EWOULDBLOCK, Errno::EAGAIN,
Errno::ECONNABORTED, Errno::EPROTO のいずれかの例外が
発生した場合は、その例外には IO::WaitReadable が extend
されます。それを利用してリトライ可能な......を掴まえることができます。
require 'socket'
serv = UNIXServer.new("/tmp/sock")
begin # emulate blocking accept
sock = serv.accept_nonblock
rescue IO::WaitReadable, Errno::EINTR
IO.select([serv])
retry
end
# sock is an accepted socket.
@see UNIXServer#accept... -
Socket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Addrinfo] (6125.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) を呼び出します。
...EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
Errno::EWOULDBLOCK、Errno::EAGAIN のような待ってからリトライすることが
可能であることを意味する例外には、IO::WaitReadable が extend
されています。
@param maxlen ソケットから受けと......るデータの最大値
@param flags フラグ
@raise Errno::EXXX recvfrom(2) がエラーを報告した場合に発生します。詳しくは
man を参照してください... -
File
# flock(operation) -> 0 | false (6119.0) -
ファイルをロックします。
...クされます。
ロックの取得に成功した場合は 0 を返します。
File::LOCK_NB (ノンブロッキング) を指定すると、本来ならブロックされる場合に
ブロックされずに false を返すようになります。
@param operation ロックに対する操作......rror 自身が close されている場合に発生します。
@raise Errno::EXXX operation に不正な整数を与えた場合などに発生します。
引数 operation に有効な定数は以下の通りです。定数は File::Constants で定義されていますが、
File クラスの......親クラスの IO が File::Constants をインクルードしているので、
これらの定数は File::LOCK_SH などとして参照可能です。
: LOCK_SH
共有ロック。複数のプロセスが同時にロックを共有できます。
システムによってはロック対象の... -
Socket
# connect _ nonblock(server _ sockaddr) -> 0 (6119.0) -
ソケットをノンブロッキングモードに設定した後、 connect(2) を呼び出します。
...を報告した場合、その例外(Errno::EINPROGRESS)
には IO::WaitWritable が Object#extend されます。
これを connect_nonblock をリトライするために使うことができます。
# Pull down Google's web page
require 'socket'
include Socket::Constants
socket = Socket......r_in(80, 'www.google.com')
begin # emulate blocking connect
socket.connect_nonblock(sockaddr)
rescue IO::WaitWritable
IO.select(nil, [socket]) # wait 3-way handshake 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) がエラーを報告した場合に発生します。詳しくは
man を参照してください。...