種類
- インスタンスメソッド (71)
- 特異メソッド (66)
- ライブラリ (22)
- 文書 (11)
クラス
- Addrinfo (22)
- Array (16)
- BasicSocket (22)
- IPAddr (11)
- IPSocket (22)
- Socket (22)
-
Socket
:: AncillaryData (22)
キーワード
- addr (11)
-
cmsg
_ is? (11) - drb (11)
- pack (16)
- recvfrom (11)
- resolv (11)
-
ruby 1
. 8 . 4 feature (11) - setsockopt (22)
-
tcp
_ server _ loop (22)
検索結果
先頭5件
- Socket
:: AncillaryData . new(family , cmsg _ level , cmsg _ type , cmsg _ data) -> Socket :: AncillaryData - Addrinfo
. new(sockaddr , family=Socket :: PF _ UNSPEC , socktype=0 , protocol=0) -> Addrinfo - Addrinfo
. ip(host) -> Addrinfo - IPAddr
. new(addr = & # 39; :: & # 39; , family = Socket :: AF _ UNSPEC) -> IPAddr - Socket
. tcp _ server _ loop(host , port) {|sock , addr| . . . } -> ()
-
Socket
:: AncillaryData . new(family , cmsg _ level , cmsg _ type , cmsg _ data) -> Socket :: AncillaryData (29380.0) -
新たな Socket::AncillaryData オブジェクトを生成します。
...新たな Socket::AncillaryData オブジェクトを生成します。
family はソケットファミリーを指定します。
整数、文字列、シンボルを渡します。
* Socket::AF_INET, "AF_INET", "INET", :AF_INET, :INET
* Socket::AF_UNIX, "AF_UNIX", "UNIX", :AF_UNIX, :UNIX
*......定します。
整数、文字列、シンボルを渡します。
* Socket::SOL_SOCKET, "SOL_SOCKET", "SOCKET", :SOL_SOCKET and :SOCKET
* Socket::IPPROTO_IP, "IP" and :IP
* Socket::IPPROTO_IPV6, "IPV6" and :IPV6
* Socket::IPPROTO_TCP, "TCP" and :TCP
* など
cmsg_type は補助データの......:RIGHTS for SOL_SOCKET
* Socket::IP_RECVTTL, "RECVTTL" and :RECVTTL for IPPROTO_IP
* Socket::IPV6_PKTINFO, "PKTINFO" and :PKTINFO for IPPROTO_IPV6
* など
cmsg_data には補助データの内容となる文字列を渡します
require 'socket'
p Socket::AncillaryData.new(:INET, :TCP, :N... -
Addrinfo
. new(sockaddr , family=Socket :: PF _ UNSPEC , socktype=0 , protocol=0) -> Addrinfo (26280.0) -
新たな Addrinfo オブジェクトを返します。
...e, protocol
は socket(2) のパラメータに対応します。
sockaddr には文字列もしくは配列を指定します。
配列の場合は IPSocket#addr や UNIXSocket#addr の
値と互換でなければなりません。
文字列の場合は Socket.sockaddr_in や
Socket.unpack_sockadd......ocaldomain", "127.0.0.1"]
* ["AF_INET6", 42304, "ip6-localhost", "::1"]
* ["AF_UNIX", "/tmp/sock"]
* Socket.sockaddr_in("smtp", "2001:DB8::1")
* Socket.sockaddr_in(80, "172.18.22.42")
* Socket.sockaddr_in(80, "www.ruby-lang.org")
* Socket.sockaddr_un("/tmp/sock")
配列で AF_INET/AF_IN......を指定した場合、配列の4番目の要素
が実際のIPアドレスとして使われます。配列の3番目の要素は
ホスト名ですが Addrinfo#inspect
での表示にしか用いられません。
family は Socket::PF_INET のようなプロコルファミリーを指定し... -
Addrinfo
. ip(host) -> Addrinfo (26141.0) -
IP アドレスに対する Addrinfo オブジェクトを返します。
...
IP アドレスに対する Addrinfo オブジェクトを返します。
port, socktype, protocol は 0 で初期化されます。
つまりこの返り値はソケットを生成するには不適です。
require 'socket'
Addrinfo.ip("localhost") #=> #<Addrinfo: 127.0.0.1 (localhost)>
@......param host ホスト(IP アドレスもしくはホスト名)
@see Addrinfo.new... -
IPAddr
. new(addr = & # 39; :: & # 39; , family = Socket :: AF _ UNSPEC) -> IPAddr (21308.0) -
新しい IPAddr オブジェクトを生成します。
...新しい IPAddr オブジェクトを生成します。
@param addr 0 から IPAddr::IN6MASK までの数値を受け取ります。
また、'address', 'address/prefixlen', 'address/mask' の形式も受け付けます。
プリフィックス長やマスクが指定さ......れた IPAddr オブジェクトを返します。
IPv6 アドレスの場合は、[ ] で囲まれていてもかまいません。
@param family family は自動的に判定されますが、明示的に指定することもできます。
@raise ArgumentError family が Socket::AF_U... -
Socket
. tcp _ server _ loop(host , port) {|sock , addr| . . . } -> () (17070.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。
...TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、
新しい接続を受け入れるごとにブロックを呼び出します。
ブロックには新しい接続を表すソケットオブジェクトと、
クライアントアドレスを表す Addrinfo オブジ...... IPv6 の
両方を待ち受けます。getaddrinfo が 0 個のアドレスを返す場合はエラー
になります。1つ以上を返した場合にそれが用いられます。
# 逐次的な echo サーバ
# 一度に一つのクライアントした取り扱えない
require 'socket'......注意
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 で処... -
Socket
. tcp _ server _ loop(port) {|sock , addr| . . . } -> () (17070.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。
...TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、
新しい接続を受け入れるごとにブロックを呼び出します。
ブロックには新しい接続を表すソケットオブジェクトと、
クライアントアドレスを表す Addrinfo オブジ...... IPv6 の
両方を待ち受けます。getaddrinfo が 0 個のアドレスを返す場合はエラー
になります。1つ以上を返した場合にそれが用いられます。
# 逐次的な echo サーバ
# 一度に一つのクライアントした取り扱えない
require 'socket'......注意
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 で処... -
IPSocket
# addr -> Array (14034.0) -
ソケットの接続情報を表す配列を返します。配列の各要素は第1要 素が文字列 "AF_INET", "AF_INET6" など、第2要素が port 番号、第3要素がホストを表 す文字列、第4要素がホストの IP アドレスを表す文字列 (octet decimal や hexadecimal) です。
...す文字列、第4要素がホストの IP アドレスを表す文字列 (octet
decimal や hexadecimal) です。
@raise 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... -
IPSocket
# recvfrom(maxlen , flags = 0) -> Array (14018.0) -
recv と同様にソケットからデータを受け取りますが、 戻り値は文字列と相手ソケットのアドレス (形式は IPSocket#addr 参照) のペアです。引数につ いては BasicSocket#recv と同様です。
...からデータを受け取りますが、
戻り値は文字列と相手ソケットのアドレス (形式は
IPSocket#addr 参照) のペアです。引数につ
いては BasicSocket#recv と同様です。
@param maxlen 受け取る文字列の最大の長さを指定します。
@param flags......recvfrom(2) がエラーになった場合などに発生します。
例:
require 'socket'
s1 = UDPSocket.new
s1.bind("0.0.0.0", 0) # 適当に空いている port を割り当てる
s2 = UDPSocket.new
s2.send("foo", 0, s1.getsockname)
mesg, inet_addr = s1.recvfrom(100)
p mesg... -
BasicSocket
# setsockopt(socketoption) -> 0 (11274.0) -
ソケットのオプションを設定します。setsockopt(2) を参照してください。
...を設定します。setsockopt(2)
を参照してください。
level, optname には Socket::SOL_SOCKET や Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いることができます。
optval......:SOCKET, :REUSEADDR, true)
sock.setsockopt(Socket::SOL_SOCKET,Socket::SO_REUSEADDR, true)
sock.setsockopt(Socket::Option.bool(:INET, :SOCKET, :REUSEADDR, true))
# 整数値の場合
#setsockopt could be called like this:
sock.setsockopt(:IP, :TTL, 255)
sock.setsockopt(Socket::IPPROTO_IP......, Socket::IP_TTL, 255)
sock.setsockopt(Socket::Option.int(:INET, :IP, :TTL, 255))
# より複雑な場合
optval = IPAddr.new("224.0.0.251").hton +
IPAddr.new(Socket::INADDR_ANY, Socket::AF_INET).hton
sock.setsockopt(Socket::IPPROTO_IP, Socket::IP_ADD_MEMBERSHIP, optval)
@param... -
BasicSocket
# setsockopt(level , optname , optval) -> 0 (11174.0) -
ソケットのオプションを設定します。setsockopt(2) を参照してください。
...を設定します。setsockopt(2)
を参照してください。
level, optname には Socket::SOL_SOCKET や Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いることができます。
optval......:SOCKET, :REUSEADDR, true)
sock.setsockopt(Socket::SOL_SOCKET,Socket::SO_REUSEADDR, true)
sock.setsockopt(Socket::Option.bool(:INET, :SOCKET, :REUSEADDR, true))
# 整数値の場合
#setsockopt could be called like this:
sock.setsockopt(:IP, :TTL, 255)
sock.setsockopt(Socket::IPPROTO_IP......, Socket::IP_TTL, 255)
sock.setsockopt(Socket::Option.int(:INET, :IP, :TTL, 255))
# より複雑な場合
optval = IPAddr.new("224.0.0.251").hton +
IPAddr.new(Socket::INADDR_ANY, Socket::AF_INET).hton
sock.setsockopt(Socket::IPPROTO_IP, Socket::IP_ADD_MEMBERSHIP, optval)
@param...