るりまサーチ

最速Rubyリファレンスマニュアル検索!
99件ヒット [1-99件を表示] (0.426秒)

別のキーワード

  1. _builtin new
  2. _builtin inspect
  3. _builtin []
  4. _builtin to_s
  5. _builtin each

検索結果

Socket::Option.new(family, level, optname, data) -> Socket::Option (21209.0)

Socket::Option オブジェクト新たに生成し返します。

...
Socket
::Option オブジェクト新たに生成し返します。

family, level, optname には Socket::SOL_SOCKET のような整数の他、
文字列("SOL_SOCKET", "SOCKET")、シンボル(:SOL_SOCKET, :SOCKET)を
指定することができます。

@param family ソケットファミリー...
...@param optname オプションの名前
@param data データ(文字列)

@see Socket::Option.int, Socket::Option.bool, Socket::Option.linger

require 'socket'

sockopt = Socket::Option.new(:INET, :SOCKET, :KEEPALIVE, [1].pack("i"))
p sockopt #=> #<Socket::Option: INET SOCKET KEEPALIVE 1>...

BasicSocket#setsockopt(socketoption) -> 0 (114.0)

ソケットのオプションを設定します。setsockopt(2) を参照してください。

...を設定します。setsockopt(2)
を参照してください。

level, optname には Socket::SOL_SOCKET Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いることができます。

optval...
... Socket::Option で設定値を表現します。

require 'socket'

# 真偽値の場合
#setsockopt could be called like this:
sock.setsockopt(:SOCKET, :REUSEADDR, true)
sock.setsockopt(Socket::SOL_SOCKET,Socket::SO_REUSEADDR, true)
sock.setsockopt(Socket::Option.bool(:INET, :SOCKET,...
...etsockopt(Socket::IPPROTO_IP, Socket::IP_TTL, 255)
sock.setsockopt(Socket::Option.int(:INET, :IP, :TTL, 255))

# より複雑な場合
optval = IPAddr.new("224.0.0.251").hton +
IPAddr.new(Socket::INADDR_ANY, Socket::AF_INET).hton
sock.setsockopt(Socket::IPPROTO_IP, Socket::IP_ADD_...

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

Socket#connect_nonblock(server_sockaddr) -> 0 (26.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) がエラーを報告した場合に発...

Socket.unix(path) -> Socket (26.0)

Unix クライアントソケットを生成します。

...なります。また、ブロックの終了後に
ソケットを IO#close します。

require 'socket'

# /tmp/sock と通信する
Socket
.unix("/tmp/sock") {|sock|
t = Thread.new { IO.copy_stream(sock, STDOUT) }
IO
.copy_stream(STDIN, sock)
t.join
}

@param path 接続対象...

絞り込み条件を変える

Socket.unix(path) {|sock| ... } -> object (26.0)

Unix クライアントソケットを生成します。

...なります。また、ブロックの終了後に
ソケットを IO#close します。

require 'socket'

# /tmp/sock と通信する
Socket
.unix("/tmp/sock") {|sock|
t = Thread.new { IO.copy_stream(sock, STDOUT) }
IO
.copy_stream(STDIN, sock)
t.join
}

@param path 接続対象...

UNIXServer#accept_nonblock -> UnixSocket (26.0)

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

...UNIXSocket のインスタンスを返します。

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

Errno::EWOULDBLOCK, Errno::EAGAIN,
Errno::ECONNABORTED, Errno::EPROTO のいずれかの例外が
発生した場合は、その例外には IO::WaitR...
...を掴まえることができます。

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.tcp_server_loop(host, port) {|sock,addr| ...} -> () (20.0)

TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。

...# 逐次的な echo サーバ
# 一度に一つのクライアントした取り扱えない
require 'socket'

Socket
.tcp_server_loop(16807) {|sock, client_addrinfo|
begin
IO
.copy_stream(sock, sock)
ensure
sock.close
end
}

# スレッドを使った echo サー...
...注意
require 'socket'

Socket
.tcp_server_loop(16807) {|sock, client_addrinfo|
Thread.new {
begin
IO
.copy_stream(sock, sock)
ensure
sock.close
end
}
}

内部的には Socket.tcp_server_sockets で
生成したソケットを Socket.accept_loop で処...
...理しています。

@param host 割り当てるホスト名
@param port 割り当てるポート番号
@see Socket.tcp_server_sockets, Socket.accept_loop...

Socket.tcp_server_loop(port) {|sock,addr| ...} -> () (20.0)

TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。

...# 逐次的な echo サーバ
# 一度に一つのクライアントした取り扱えない
require 'socket'

Socket
.tcp_server_loop(16807) {|sock, client_addrinfo|
begin
IO
.copy_stream(sock, sock)
ensure
sock.close
end
}

# スレッドを使った echo サー...
...注意
require 'socket'

Socket
.tcp_server_loop(16807) {|sock, client_addrinfo|
Thread.new {
begin
IO
.copy_stream(sock, sock)
ensure
sock.close
end
}
}

内部的には Socket.tcp_server_sockets で
生成したソケットを Socket.accept_loop で処...
...理しています。

@param host 割り当てるホスト名
@param port 割り当てるポート番号
@see Socket.tcp_server_sockets, Socket.accept_loop...