るりまサーチ

最速Rubyリファレンスマニュアル検索!
42件ヒット [1-42件を表示] (0.013秒)
トップページ > クエリ:select[x] > ライブラリ:socket[x]

別のキーワード

  1. _builtin select
  2. _builtin select!
  3. dbm select
  4. hash select
  5. env select

検索結果

Socket::Constants::IFF_AUTOMEDIA (18.0)

auto media select active

...auto media select active...

Socket::IFF_AUTOMEDIA (18.0)

auto media select active

...auto media select active...

Socket#connect_nonblock(server_sockaddr) -> 0 (8.0)

ソケットをノンブロッキングモードに設定した後、 connect(2) を呼び出します。

...ソケットをノンブロッキングモードに設定した後、
connect(2) を呼び出します。

引数、返り値は Socket#connect と同じです。

connect が EINPROGRESS エラーを報告した場合、その例外(Errno::EINPROGRESS)
には IO::WaitWritable が Object#extend さ...
...eb page
require '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 han...
...dshake 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) がエラーを報告...

Socket.udp_server_recv(sockets) {|msg, msg_src| ... } -> () (8.0)

socketsで与えられた各 UDP ソケットからデータを読み取ります。

...socketsで与えられた各 UDP ソケットからデータを読み取ります。

各ソケットからメッセージを読み取るごとにブロックを呼び出します。
ブロックに渡される引数は msg と msg_src の 2 つで、
msg は受け取ったメッセージ文字列...
...通信相手の Socket::UDPSource オブジェクトです。

Socket
.udp_server_loop はこのメソッドの用いて以下のようにして
実装できます。

require 'socket'

udp_server_sockets(host, port) {|sockets|
loop {
readable, _, _ = IO.select(sockets)
udp_serv...
...er_recv(readable) {|msg, msg_src| ... }
}
}

@param sockets 読み込むソケットの配列...

TCPServer (8.0)

TCP/IP ストリーム型接続のサーバ側のソケットのクラスです。

...えば echo サーバは以下のようになります。

require "socket"

gs = TCPServer.open(0)
socks = [gs]
addr = gs.addr
addr.shift
printf("server is on %s\n", addr.join(":"))

while true
nsock = select(socks)
next if nsock == nil
for s in nsock[0]
if s ==...
...e
str = s.gets
s.write(str)
end
end
end
end

Thread を使えばもっと短くなります。

require "socket"

gs = TCPServer.open(0)
addr = gs.addr
addr.shift
printf("server is on %s\n", addr.join(":"))

while true
Thread.start(gs.accep...

絞り込み条件を変える

UDPSocket#recvfrom_nonblock(maxlen, flags=0) -> [String, Array] (8.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...

UNIXServer#accept_nonblock -> UnixSocket (8.0)

ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。

...ブロッキングモードに設定した後、
accept(2) を呼び出します。

接続した
UNIXSocket のインスタンスを返します。

accept(2) がエラーになった場合、Socket#accept と同じ例外が
発生します。

Errno::EWOULDBLOCK, Errno::EAGAIN,
Errno::ECONNABORTE...
...を掴まえることができます。

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...