種類
- インスタンスメソッド (66)
- 文書 (42)
- クラス (33)
- 特異メソッド (22)
クラス
- BasicSocket (44)
- TCPServer (44)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) -
NEWS for Ruby 2
. 3 . 0 (9) - SSLServer (11)
- Socket (11)
- accept (11)
- getpeername (11)
- getsockname (11)
-
local
_ address (11) - new (11)
-
remote
_ address (11) -
ruby 1
. 8 . 5 feature (11) -
ruby 1
. 9 feature (11) - sysaccept (11)
検索結果
先頭5件
-
TCPServer (46036.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)......tr = 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|... -
TCPServer
. open(host=nil , service) -> TCPServer (44221.0) -
新しいサーバー接続をオープンします。service は /etc/services (または NIS) に登録されているサービ ス名かポート番号で指定します。host を指定した時は 指定したホストに対しての接続だけを受け付けます。
...に対しての接続だけを受け付けます。
省略時は全てのホストへの接続要求を受け付けることになります。
new, open は内部では getaddrinfo(3) を呼び出しており、
複数のアドレス構造体が検出された場合、
最初に見つかったも......、接続を特定できます。
host に指定できる形式はlib:socket#host_formatを見てください。
@param host 接続したいホストを指定します。
host に指定できる形式はlib:socket#host_formatを見てください。
@param service /etc/services (ま... -
TCPServer
. new(host=nil , service) -> TCPServer (29121.0) -
新しいサーバー接続をオープンします。service は /etc/services (または NIS) に登録されているサービ ス名かポート番号で指定します。host を指定した時は 指定したホストに対しての接続だけを受け付けます。
...に対しての接続だけを受け付けます。
省略時は全てのホストへの接続要求を受け付けることになります。
new, open は内部では getaddrinfo(3) を呼び出しており、
複数のアドレス構造体が検出された場合、
最初に見つかったも......、接続を特定できます。
host に指定できる形式はlib:socket#host_formatを見てください。
@param host 接続したいホストを指定します。
host に指定できる形式はlib:socket#host_formatを見てください。
@param service /etc/services (ま... -
TCPServer
# accept -> TCPSocket (29118.0) -
クライアントからの接続要求を受け付け、接続した TCPSocket のインスタンスを返します。
...クライアントからの接続要求を受け付け、接続した
TCPSocket のインスタンスを返します。
例:
require 'socket'
TCPServer.open("", 0) {|serv|
c = TCPSocket.new(*serv.addr.values_at(3,1))
s = serv.accept
c.write "foo"
p s.recv(10) #=> "foo"
}... -
TCPServer
# sysaccept -> Integer (29034.0) -
接続したクライアントのソケットをファイル記述子で返すことを除けば TCPServer#accept と同じです。
...接続したクライアントのソケットをファイル記述子で返すことを除けば
TCPServer#accept と同じです。
例:
require 'socket'
TCPServer.open("", 0) {|serv|
c = TCPSocket.new(*serv.addr.values_at(3,1))
p serv.sysaccept #=> 6
}... -
Socket (14090.0)
-
汎用ソケットクラス。
...して
Socket.new がありますが、以下のようなより便利な
メソッドがあります。
* TCP のクライアントソケット Socket.tcp TCPSocket.open
* TCP のサーバソケット Socket.tcp_server_loop,
Socket.tcp_server_sockets, TCPServer.open
* UNIX socket のクラ......イアントソケット Socket.unix UNIXSocket.open
* UNIX socket のサーバソケット Socket.unix_server_loop,
Socket.unix_server_socket, UNIXServer.open
また、クライアントソケットは Addrinfo#connect で、
サーバソケットを Addrinfo#bind や Addrinfo#listen で
作... -
BasicSocket
# getpeername -> String (11036.0) -
接続の相手先のソケットの情報を取得します。sockaddr 構造体をパッ クした文字列を返します。getpeername(2) を参照してください。
...い。
例:
require 'socket'
serv = TCPServer.open("", 0)
c = TCPSocket.open(*Socket.unpack_sockaddr_in(serv.getsockname).reverse)
s = serv.accept
addr = c.getpeername
p addr #=> "\002\000\267\214\177\000\000\001\000\000\000\000\000\000\000\000"
p Socket.unpack_sockaddr_in(addr... -
BasicSocket
# getsockname -> String (11036.0) -
ソケットの情報を取得します。sockaddr 構造体をパックした 文字列を返します。getsockname(2) を参照してください。
...ださい。
例:
require 'socket'
serv = TCPServer.open("", 0)
p serv.getsockname #=> "\002\000\236C\000\000\000\000\000\000\000\000\000\000\000\000"
p Socket.unpack_sockaddr_in(serv.getsockname) #=> [40515, "0.0.0.0"]
c = TCPSocket.open(*Socket.unpack_sockaddr_in(serv.getso... -
BasicSocket
# local _ address -> Addrinfo (11024.0) -
getsockname(2) で得られたローカルアドレス情報を Addrinfo オブジェクトとして返します。
...してください。
require 'socket'
TCPSocket.open("www.ruby-lang.org", 80) {|s|
p s.local_address #=> #<Addrinfo: 192.168.0.129:36873 TCP>
}
TCPServer.open("127.0.0.1", 1512) {|serv|
p serv.local_address #=> #<Addrinfo: 127.0.0.1:1512 TCP>
}
@see BasicSocket#getsockname... -
BasicSocket
# remote _ address -> Addrinfo (11024.0) -
getpeername(2) で得られたリモートアドレス情報を Addrinfo オブジェクトとして返します。
...返すことに注意してください。
require 'socket'
TCPSocket.open("www.ruby-lang.org", 80) {|s|
p s.remote_address #=> #<Addrinfo: 221.186.184.68:80 TCP>
}
TCPServer.open("127.0.0.1", 1728) {|serv|
c = TCPSocket.new("127.0.0.1", 1728)
s = serv.accept
p s.remote......_address #=> #<Addrinfo: 127.0.0.1:36504 TCP>
}
@see BasicSocket#getpeername...