318件ヒット
[1-100件を表示]
(0.113秒)
クラス
-
ARGF
. class (24) - BasicSocket (60)
- IO (60)
- Socket (24)
- StringIO (36)
-
Thread
:: Queue (36) -
Thread
:: SizedQueue (36) - ThreadsWait (6)
- UDPSocket (12)
モジュール
-
OpenSSL
:: Buffering (24)
キーワード
-
connect
_ nonblock (12) - deq (24)
- fcntl (12)
-
next
_ wait (6) - pop (24)
-
read
_ nonblock (48) - readpartial (24)
-
recv
_ nonblock (12) -
recvfrom
_ nonblock (24) - recvmsg (12)
-
recvmsg
_ nonblock (12) - sendmsg (12)
-
sendmsg
_ nonblock (12) - shift (24)
- syswrite (12)
-
write
_ nonblock (36)
検索結果
先頭5件
- IO
# nonblock(bool = true) { . . . } -> object - IO
# write _ nonblock(string , exception: true) -> Integer | :wait _ writable - OpenSSL
:: Buffering # write _ nonblock(s) -> Integer - Socket
# connect _ nonblock(server _ sockaddr) -> 0 - BasicSocket
# recvmsg _ nonblock(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData]
-
IO
# nonblock(bool = true) { . . . } -> object (18208.0) -
ブロック実行中、一時的に self のブロックモードを変更します。 bool が真ならノンブロックモード、偽ならブロックモードになります。
...実行中、一時的に self のブロックモードを変更します。
bool が真ならノンブロックモード、偽ならブロックモードになります。
@param bool 真を指定するとノンブロックモード、偽を指定するとブロックモードになります。... -
IO
# write _ nonblock(string , exception: true) -> Integer | :wait _ writable (12320.0) -
IO をノンブロッキングモードに設定し、string を write(2) システムコールで書き出します。
...し、string を write(2) システムコールで書き出します。
write(2) が成功した場合、書き込んだ長さを返します。
EAGAIN, EINTR などは例外 Errno::EXXX として呼出元に報告されます。
書き込んだバイト数(つまり返り値)は String#bytesize......ジェクトに IO::WaitWritable が Object#extend
されます。よって IO::WaitWritable を write_nonblock のリトライが必要
かの判定に用いることができます。
@param string 自身に書き込みたい文字列を指定します。
@param exception false を指定する......込み時に Errno::EAGAIN、Errno::EWOULDBLOCK が発生
する代わりに :wait_writable を返します。
@raise IOError 自身が書き込み用にオープンされていなければ発生します。
@raise Errno::EXXX write(2) が失敗した場合に発生します。... -
OpenSSL
:: Buffering # write _ nonblock(s) -> Integer (12314.0) -
文字列 s をノンブロッキングモードで書き込みます。
...で
ブロックする可能性があります。
基本的には IO#write_nonblock と同様です。しかし以下のような
違いもあります。
このメソッドはソケットが読み込み不可能(IO::WaitReadable)
という理由で
例外を発生させる可能性があります......ためです。
@param s 出力する文字列
@raise OpenSSL::SSL::SSLError ソケットが読み込み/書き込み可能状態になるのを
待つ必要がある場合に発生します。
読み込み可能状態を待つ必要がある場合には IO::WaitReadable を、......書き込み可能状態を待つ必要がある場合には IO::WaitWritable を、
それぞれ extend した例外オブジェクトが生成されます。... -
Socket
# connect _ nonblock(server _ sockaddr) -> 0 (12226.0) -
ソケットをノンブロッキングモードに設定した後、 connect(2) を呼び出します。
...した後、
connect(2) を呼び出します。
引数、返り値は Socket#connect と同じです。
connect が EINPROGRESS エラーを報告した場合、その例外(Errno::EINPROGRESS)
には IO::WaitWritable が Object#extend されます。
これを connect_nonblock をリトライす......socket'
include Socket::Constants
socket = Socket.new(AF_INET, SOCK_STREAM, 0)
sockaddr = Socket.sockaddr_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) がエラーを報告した場合に発... -
BasicSocket
# recvmsg _ nonblock(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] (9326.0) -
recvmsg(2) を用いてノンブロッキング方式でメッセージを受け取ります。
...ングの有無以外は BasicSocket#recvmsg と同じです。
詳しくはそちらを参照してください。
@param maxmesglen 受け取るメッセージの最大長
@param flags フラグ
@param maxcontrollen 受け取る補助データの最大長
@param opts ハッシュオプション... -
StringIO
# write _ nonblock(obj) -> Integer (9308.0) -
自身に obj を書き込みます。StringIO#write と同じです。
...自身に obj を書き込みます。StringIO#write と同じです。
@param obj 書き込みたいオブジェクトを指定します。
@raise IOError 自身が書き込み用にオープンされていなければ発生します。... -
BasicSocket
# sendmsg _ nonblock(mesg , flags=0 , dest _ sockaddr=nil , *controls) -> Integer (9226.0) -
sendmsg(2) を用いてノンブロッキング方式でメッセージを送ります。
...ocket#sendmsg を見てください。
@return 送ったバイト数
@param mesg メッセージ文字列
@param flags フラグ(Socket::MSG_* という定数の bitwise OR を取ったもの)
@param dest_sockaddr 通信先のアドレス
@param controls 補助データの配列
@see BasicSocket#se... -
StringIO
# read _ nonblock(maxlen , outbuf = nil , exception: true) -> String | nil (9220.0) -
StringIO#readに似ていますが、 exception オプションに false を指定すると EOFError を発生させず nil を返します。
...StringIO#readに似ていますが、 exception オプションに false を指定すると EOFError を発生させず nil を返します。
@param len 読み込みたい長さを整数で指定します。StringIO#read と同じです。
@param outbuf 読み込んだ文字列を出力するバ......ブジェクトが
あらかじめ length 長の領域であれば、余計なメモリの割当てが行われません。指定した文字列の
長さが length と異なる場合、その文字列は一旦 length 長に拡張(あるいは縮小)されたあと、......実際に読み込んだデータのサイズになります。IO#read と同じです。
@param exception false を指定した場合、既に EOF に達していれば
EOFError の代わりに nil を返します。
@raise EOFError 文字列の終端に達した場合... -
UDPSocket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Array] (9220.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。
...で、Socket::MSG_* の bitwise OR を渡します。
詳しくは recvfrom(2) を参照してください。
返り値はデータの文字列と送り元のアドレス情報の
2要素の配列となります。
recvfrom(2) がエラーになった場合、
Errno::EAGAIN, Errno::EINTR を含め......には、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.send "aaa", 0
begin # emulate blocking recvf......rom
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...