種類
- インスタンスメソッド (84)
- クラス (12)
- モジュール関数 (12)
ライブラリ
- socket (84)
-
webrick
/ server (12) -
webrick
/ utils (12)
クラス
- BasicSocket (36)
- IPSocket (12)
- TCPServer (24)
-
WEBrick
:: GenericServer (12)
モジュール
-
WEBrick
:: Utils (12)
キーワード
- accept (12)
-
create
_ listeners (12) - getpeername (12)
- listen (12)
-
local
_ address (12) -
remote
_ address (12) - sysaccept (12)
検索結果
先頭5件
-
TCPServer (38060.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)
next if nsock == nil
for s in nsock[0]......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(... -
TCPServer
# sysaccept -> Integer (21028.0) -
接続したクライアントのソケットをファイル記述子で返すことを除けば TCPServer#accept と同じです。
...接続したクライアントのソケットをファイル記述子で返すことを除けば
TCPServer#accept と同じです。
例:
require 'socket'
TCPServer.open("", 0) {|serv|
c = TCPSocket.new(*serv.addr.values_at(3,1))
p serv.sysaccept #=> 6
}... -
TCPServer
# accept -> TCPSocket (21012.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"
}... -
IPSocket
# addr -> Array (18119.0) -
ソケットの接続情報を表す配列を返します。配列の各要素は第1要 素が文字列 "AF_INET", "AF_INET6" など、第2要素が port 番号、第3要素がホストを表 す文字列、第4要素がホストの IP アドレスを表す文字列 (octet decimal や hexadecimal) です。
...Errno::EXXX getsockname(2) が 0 未満の値を返した場合に発生します。
例:
require 'socket'
serv = TCPServer.new("localhost", 0)
p serv.addr #=> ["AF_INET", 46102, "localhost.localdomain", "127.0.0.1"]
c = TCPSocket.new(*serv.addr.values_at(3,1))
s = serv.accept... -
BasicSocket
# local _ address -> Addrinfo (6206.0) -
getsockname(2) で得られたローカルアドレス情報を Addrinfo オブジェクトとして返します。
...アドレス情報を
Addrinfo オブジェクトとして返します。
返されたオブジェクトの Addrinfo#protocol は 0 を
返すことに注意してください。
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 (6206.0) -
getpeername(2) で得られたリモートアドレス情報を Addrinfo オブジェクトとして返します。
...ドレス情報を
Addrinfo オブジェクトとして返します。
返されたオブジェクトの Addrinfo#protocol は 0 を
返すことに注意してください。
require 'socket'
TCPSocket.open("www.ruby-lang.org", 80) {|s|
p s.remote_address #=> #<Addrinfo: 221.186.184.68:8......0 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... -
WEBrick
:: GenericServer # listen(address , port) -> [TCPServer] (223.0) -
与えられたアドレスとポートで TCPServer オブジェクトを生成し listener として管理します。
...れたアドレスとポートで TCPServer オブジェクトを生成し
listener として管理します。
@param address アドレスを文字列で指定します。
@param port listen するポートを整数で指定します。
@see WEBrick::GenericServer#listeners, TCPServer#listen... -
WEBrick
:: Utils . # create _ listeners(address , port , logger = nil) -> [TCPServer] (223.0) -
与えられたアドレスとポートで TCPServer オブジェクトを生成し ます。
...与えられたアドレスとポートで TCPServer オブジェクトを生成し
ます。
@param address アドレスを指定します。
@param port ポート番号を指定します。
@param logger ロガーオブジェクトを指定します。
@raise ArgumentError port を指定し......なかった場合に発生します。
@see Socket.getaddrinfo, TCPServer... -
BasicSocket
# getpeername -> String (30.0) -
接続の相手先のソケットの情報を取得します。sockaddr 構造体をパッ クした文字列を返します。getpeername(2) を参照してください。
...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) #=> [46988, "127.0.0.1"]
p addr == s.getsockname #=> true...