種類
- 特異メソッド (48)
- クラス (24)
- モジュール (12)
- ライブラリ (12)
- インスタンスメソッド (12)
クラス
- BasicSocket (12)
- Socket (48)
キーワード
- DRbProtocol (12)
- TCPServer (12)
- TCPSocket (12)
-
net
/ ftp (12) - recv (12)
-
tcp
_ server _ loop (24)
検索結果
先頭5件
- Socket
. tcp(host , port , local _ host=nil , local _ port=nil , connect _ timeout: nil) -> Socket - Socket
. tcp(host , port , local _ host=nil , local _ port=nil , connect _ timeout: nil) {|socket| . . . } -> object - Socket
. tcp _ server _ loop(host , port) {|sock , addr| . . . } -> () - Socket
. tcp _ server _ loop(port) {|sock , addr| . . . } -> () - TCPServer
-
Socket
. tcp(host , port , local _ host=nil , local _ port=nil , connect _ timeout: nil) -> Socket (18130.0) -
TCP/IP で host:port に接続するソケットオブジェクトを作成します。
...TCP/IP で host:port に接続するソケットオブジェクトを作成します。
local_host や local_port を指定した場合、ソケットをそこにバインドします。
ブロックを渡すと、生成したソケットをそのブロックに渡し呼び出します。
ブロ......返した値です。
ブロックなしで呼ばれた場合はソケットオブジェクトを返します。
require 'socket'
Socket.tcp("www.ruby-lang.org", 80) {|sock|
sock.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n"
sock.close_write
puts sock.read
}... -
Socket
. tcp(host , port , local _ host=nil , local _ port=nil , connect _ timeout: nil) {|socket| . . . } -> object (18130.0) -
TCP/IP で host:port に接続するソケットオブジェクトを作成します。
...TCP/IP で host:port に接続するソケットオブジェクトを作成します。
local_host や local_port を指定した場合、ソケットをそこにバインドします。
ブロックを渡すと、生成したソケットをそのブロックに渡し呼び出します。
ブロ......返した値です。
ブロックなしで呼ばれた場合はソケットオブジェクトを返します。
require 'socket'
Socket.tcp("www.ruby-lang.org", 80) {|sock|
sock.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n"
sock.close_write
puts sock.read
}... -
Socket
. tcp _ server _ loop(host , port) {|sock , addr| . . . } -> () (6166.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。
...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
. tcp _ server _ loop(port) {|sock , addr| . . . } -> () (6166.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。
...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 サーバ
# 同時に複数のクライ... -
TCPServer (6028.0)
-
TCP/IP ストリーム型接続のサーバ側のソケットのクラスです。
...TCP/IP ストリーム型接続のサーバ側のソケットのクラスです。
このクラスによって簡単にソケットを利用したサーバのプログラミングができます。
例えば echo サーバは以下のようになります。
require "socket"
gs = TCPServer......print(s, " is gone\n")
s.close
socks.delete(s)
else
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.accept) do |s| # save to dynamic variable
print(s, " is accepted\n")
while s.gets
s.write($_)
end
print(s, " is gone\n")
s.close
end
end... -
TCPSocket (6006.0)
-
インターネットドメインのストリーム型ソケットのクラスです。
...をそのままサーバに転送するプログラムは以下の
ようになります。
require "socket"
port = if ARGV.size > 0 then ARGV.shift else 4444 end
print port, "\n"
s = TCPSocket.open("localhost", port)
while gets
s.write($_)
print(s.gets)
end
s.close... -
DRb
:: DRbProtocol (24.0) -
drb で使われる通信プロトコルを取り扱うモジュールです。
...rotocol.#add_protocol で
drb に登録することで、追加ができます。
デフォルトでは DRbTCPSocket クラスを用い、druby://... という
URI を指定することで TCP/IP で通信します。
通信プロトコルを追加する例としては、
例としては drb/unix......受け付けます。返り値としてクライアントとの通信ができるオブジェクト
(後で説明します)を返します。
: close
接続の待受を終了します。
: uri
接続を待ち受けている uri を返します。
==== open
プロトコルクラスの open......このメソッドの実装法です。
: alive?
接続が生きているならば真を返し、切れていれば偽を返します。
: close
接続を閉じます。
==== open_server().accept
プロトコルクラスの open_server で返されるオブジェクト
の accept メソッ... -
BasicSocket
# recv(maxlen , flags = 0) -> String (12.0) -
ソケットからデータを受け取り、文字列として返します。 maxlen は受け取る最大の長さを指定します。 flags については recv(2) を参照してください。flags の デフォルト値は 0 です。flags の指定に必要な定数は Socket クラスで定義されています。(例: Socket::MSG_PEEK)
...ecv(2) が 0 を返した場合、このメソッドは "" を返します。
この意味はソケットによって異なります。
たとえば TCP では EOF を意味しますし、
UDP では空のパケットを読み込んだことを意味します。
@param maxlen 受け取る文字列......raise Errno::EXXX recvfrom(2) がエラーになった場合などに発生します。
例:
require 'socket'
s1, s2 = UNIXSocket.pair
s1.write "a"
s1.close
p s2.recv(10, Socket::MSG_PEEK) #=> "a"
p s2.recv(10) #=> "a"
p s2.recv(10) #=> ""... -
net
/ ftp (12.0) -
FTP プロトコルを扱うライブラリです。
...=== パッシブモードとアクティブモード
FTP はファイル転送やディレクトリ情報取得のための
データ転送用の TCP コネクションを、
サーバとの制御コマンドをやりとり
するためのコネクションとは別に作成します。
このデ......gin
ftp.passive = true
ftp.chdir('pub/ruby')
files = ftp.list('ruby*')
ftp.getbinaryfile('ruby-1.9.1-p243.tar.bz2', 'ruby.bz2', 1024)
ftp.close
例2:
require 'net/ftp'
Net::FTP.open('ftp.example.org') do |ftp|
ftp.login
ftp.passive = true
ftp.chdir('pub/ruby')
files =...