るりまサーチ

最速Rubyリファレンスマニュアル検索!
55件ヒット [1-55件を表示] (0.045秒)
トップページ > クエリ:IO.new[x] > クエリ:connect_nonblock[x] > クラス:Socket[x]

別のキーワード

  1. openssl new
  2. _builtin new
  3. rexml/document new
  4. resolv new
  5. socket new

ライブラリ

キーワード

検索結果

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

ソケットをノンブロッキングモードに設定した後、 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 (25.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 (25.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.tcp_server_loop(host, port) {|sock,addr| ...} -> () (19.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| ...} -> () (19.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...

絞り込み条件を変える