72件ヒット
[1-72件を表示]
(0.111秒)
クラス
-
OpenSSL
:: SSL :: SSLServer (12) - OptionParser (24)
- Socket (36)
キーワード
-
accept
_ loop (12) - new (12)
- reject (12)
-
tcp
_ server _ loop (24)
検索結果
先頭5件
-
OptionParser
. accept(klass , pat = / . * / ) {|str| . . . } -> () (18214.0) -
オプションの引数を文字列から Ruby のオブジェクトに変換するための ブロックを登録します。すべての OptionParser インスタンスに共通です。
...プションの引数から klass のインスタンスを生成して返すものを指定します。
OptionParser#on で klass を指定した場合、
コマンドラインのオプションに与えられた引数は、この accept で登録したブロックで
klass のインスタンスに......れます。
//emlist[][ruby]{
require "optparse"
require "time"
OptionParser.accept(Time) do |s,|
begin
Time.parse(s) if s
rescue
raise OptionParser::InvalidArgument, s
end
end
opts = OptionParser.new
opts.on("-t", "--time [TIME]", Time) do |time|
p time.class #=> Time
end
opts......クラスに対しては変換用のブロックがデフォルトで登録されて
います。OptionParser#on を参照して下さい。
@param klass クラスオブジェクトを与えます。
@param pat match メソッドを持ったオブジェクト(Regexp オブジェクトなど)を与... -
Socket
. accept _ loop(sockets) {|sock , client _ addrinfo| . . . } -> () (12208.0) -
sockets でサーバソケットを受け取り、接続を待ち受け、 クライアントとの接続が確立するたびにブロックにその接続 ソケットを渡し呼び出します。
...トオブジェクトと
Addrinfo オブジェクトです。
Socket.tcp_server_loop と同様、ブロックは
逐次的に呼び出されます。つまりブロックか終了するまで
次の接続は accept されません。
並列に通信したい場合は
スレッドのような並列......実行機構を使う必要があります。
@param sockets 待ち受けたいサーバソケットの配列
@see Socket.tcp_server_loop, Socket.unix_server_loop... -
OpenSSL
:: SSL :: SSLServer . new(svr , ctx) -> OpenSSL :: SSL :: SSLServer (6213.0) -
TCPServer オブジェクトをラップする SSLServer オブジェクトを生成します。
...する SSLServer オブジェクトを生成します。
svr にはラップするTCPServer オブジェクトを、
ctx には SSL サーバが用いる OpenSSL::SSL::SSLContext
オブジェクトを生成します。
OpenSSL::SSL::SSLServer#listen や OpenSSL::SSL::SSLServer#accept
は内部で......svr で渡されたオブジェクトの
TCPServer#listen や TCPServer#accept を呼び出します。
@param svr 利用する TCPServer オブジェクト
@param ctx SSL サーバとして用いる OpenSSL::SSL::SSLContext オブジェクト... -
Socket
. tcp _ server _ loop(host , port) {|sock , addr| . . . } -> () (6113.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。
...を表す Addrinfo オブジェクトが渡されます。
ブロックの実行が終わってもソケットは close されません。
アプリケーション側が明示的に close する必要があります。
このメソッドはブロックを逐次的に呼び出します。
つまり......度に一つのクライアントした取り扱えない
require 'socket'
Socket.tcp_server_loop(16807) {|sock, client_addrinfo|
begin
IO.copy_stream(sock, sock)
ensure
sock.close
end
}
# スレッドを使った echo サーバ
# 同時に複数のクライア......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 で処理しています... -
Socket
. tcp _ server _ loop(port) {|sock , addr| . . . } -> () (6113.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。
...を表す Addrinfo オブジェクトが渡されます。
ブロックの実行が終わってもソケットは close されません。
アプリケーション側が明示的に close する必要があります。
このメソッドはブロックを逐次的に呼び出します。
つまり......度に一つのクライアントした取り扱えない
require 'socket'
Socket.tcp_server_loop(16807) {|sock, client_addrinfo|
begin
IO.copy_stream(sock, sock)
ensure
sock.close
end
}
# スレッドを使った echo サーバ
# 同時に複数のクライア......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 で処理しています... -
OptionParser
. reject(klass) -> () (123.0) -
OptionParser.accept メソッドで登録したブロックを削除します。
....accept メソッドで登録したブロックを削除します。
@param klass 削除したいクラスオブジェクトを指定します。
//emlist[例][ruby]{
require "optparse"
require "time"
def parse(option_parser)
option_parser.on("-t", "--time [TIME]", Time) do |time|
p time.cl......ass
end
option_parser.parse(ARGV)
end
OptionParser.accept(Time) do |s,|
begin
Time.parse(s) if s
rescue
raise OptionParser::InvalidArgument, s
end
end
opts1 = OptionParser.new
parse(opts1) # => Time
OptionParser.reject(Time)
opts2 = OptionParser.new
parse(opts2) # => unsupported...