別のキーワード
種類
- インスタンスメソッド (9)
- 特異メソッド (8)
クラス
- BasicSocket (1)
- IPSocket (3)
- Socket (10)
-
Socket
:: Option (1) - TCPSocket (1)
- UDPSocket (1)
キーワード
- accept (1)
-
accept
_ nonblock (1) - addr (1)
- getaddrinfo (1)
- gethostbyaddr (1)
- gethostbyname (2)
- getnameinfo (1)
- pair (1)
- peeraddr (1)
- recvfrom (1)
-
recvfrom
_ nonblock (1) - sendmsg (1)
- socketpair (1)
- sysaccept (1)
- unpack (1)
-
unpack
_ sockaddr _ in (1)
検索結果
先頭5件
-
Socket
. pair(domain , type , protocol=0) -> Array (313.0) -
相互に結合されたソケットのペアを含む2要素の配列を返します。 引数の指定は Socket.open と同じです。
...のペアを含む2要素の配列を返します。
引数の指定は Socket.open と同じです。
@param domain Socket.open を参照してください。
@param type Socket.open を参照してください。
@param protocol Socket.open を参照してください。
@see Socket.open... -
Socket
. socketpair(domain , type , protocol=0) -> Array (313.0) -
相互に結合されたソケットのペアを含む2要素の配列を返します。 引数の指定は Socket.open と同じです。
...のペアを含む2要素の配列を返します。
引数の指定は Socket.open と同じです。
@param domain Socket.open を参照してください。
@param type Socket.open を参照してください。
@param protocol Socket.open を参照してください。
@see Socket.open... -
IPSocket
# addr -> Array (310.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... -
IPSocket
# peeraddr -> Array (310.0) -
接続相手先ソケットの情報を表す配列を返します。配列の各要素は IPSocket#addr メソッドが返す配列 と同じです。
...表す配列を返します。配列の各要素は
IPSocket#addr メソッドが返す配列
と同じです。
@raise Errno::EXXX getpeername(2) が 0 未満の値を返した場合に発生します。
例:
require 'socket'
TCPSocket.open("localhost", "http") {|s|
p s.peeraddr #=>... -
IPSocket
# recvfrom(maxlen , flags = 0) -> Array (310.0) -
recv と同様にソケットからデータを受け取りますが、 戻り値は文字列と相手ソケットのアドレス (形式は IPSocket#addr 参照) のペアです。引数につ いては BasicSocket#recv と同様です。
...からデータを受け取りますが、
戻り値は文字列と相手ソケットのアドレス (形式は
IPSocket#addr 参照) のペアです。引数につ
いては BasicSocket#recv と同様です。
@param maxlen 受け取る文字列の最大の長さを指定します。
@param flags......X 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... -
Socket
# accept -> Array (310.0) -
新しい接続を受け付けて、新しい接続に対するソケットとアドレスの ペアを返します。accept(2) を参照。
...、accept でクライアントからの接続を受け付けるには以下のようにします。
例:
require 'socket'
serv = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
sockaddr = Socket.sockaddr_in(8080, "0.0.0.0")
serv.bind(sockaddr)
serv.listen(5)
sock = serv.accept... -
Socket
# accept _ nonblock -> Array (310.0) -
ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。
...ソケットをノンブロッキングモードに設定した後、
accept(2) を呼び出します。
引数、返り値は Socket#accept と同じです。
accept(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。... -
Socket
# sysaccept -> Array (310.0) -
接続したクライアントのファイル記述子とアドレスのペアを返すことを除 けば Socket#accept と同じです。
...接続したクライアントのファイル記述子とアドレスのペアを返すことを除
けば Socket#accept と同じです。... -
Socket
. getaddrinfo(nodename , servname , family=nil , socktype=nil , protocol=nil , flags=nil) -> Array (310.0) -
2553で定義された getaddrinfo() の機能を提供するクラスメソッド。この関数は gethostbyname() や getservbyname() の代わりとして用意されており、 IP のバージョンに依存しないプログラムを書くための標準的な API です。
...名を指定します。 必須引数です。 (lib:socket#host_formatを参照)
@param servname サービス名を指定します。 必須引数です。 (lib:socket#service_formatを参照)
@param family アドレスファミリー。Socket::Constants::AF_INET など、AF_ で始まる定数を......指定します。
@param socktype ソケットタイプ。 Socket::Constants::SOCK_STREAM など、 SOCK_ で始まる定数を指定します。
@param protocol プロトコル。Socket::Constants::IPPROTO_IP など、IPPROTO_ で始まる定数を指定します。
@param flags getaddrinfo(3)......数に指定する addrinfo 構造体の ai_flags メンバに相当する整数。 Socket::AI_PASSIVEなど。
@return 7つの要素からなるアドレス情報に関する配列を返します。
@raise SocketError getaddrinfo(3)がエラーを返したときに発生する例外です
@see Ad... -
Socket
. gethostbyaddr(host , type = Socket :: AF _ INET) -> Array (310.0) -
sockaddr 構造体をパックした文字列からホスト情報を返します。 ホスト情報の構造は Socket.gethostbyname と同じです。 type には、アドレスタイプ(デフォルトは Socket::AF_INET)を指定します。
...は Socket.gethostbyname と同じです。
type には、アドレスタイプ(デフォルトは
Socket::AF_INET)を指定します。
@param host ホストを文字列で指定します。
@param type アドレスタイプ(デフォルトはSocket::AF_INET)を指定します。
@raise SocketEr... -
Socket
. gethostbyname(host) -> Array (310.0) -
ホスト名または IP アドレス(指定方法に関しては lib:socket#host_formatを参照) からホストの情報を返します。
...ホスト名または IP アドレス(指定方法に関しては
lib:socket#host_formatを参照)
からホストの情報を返します。
@param host 文字列でホストを指定します。
@return ホスト情報を含んだ4要素の配列を返します。
=== 返り値のホスト......) ならば
Socket.unpack_sockaddr_in で unpack できます。
=== 使用例
irb(main):009:0> require 'socket'
irb(main):009:0> Socket.gethostbyname("210.251.121.214")
["helium.ruby-lang.org", ["helium"], 2, "\322\373y\326"]
irb(main):009:0> Socket.unpack_sockaddr_in(Socket.gethostby... -
Socket
. getnameinfo(sa , flags = 0) -> Array (310.0) -
2553 で定義された getnameinfo() の機能を提供するク ラスメソッド。 gethostbyaddr() や getservbyport() の代 わりとして用意されています。IPのバージョンに依存しないプログラムを 書くための標準的なAPIです。
...ise SocketError getnameinfo(3) がエラーを起こした場合に生じる例外
@see Addrinfo#getnameinfo
=== 引数 sa について
引数 sa には文字列か配列を与えます。文字列の場合は sockaddr 構造体
のパック文字列を与えます。具体的には BasicSocket#ge......素が4つの場合:
[アドレスファミリー, サービス, 任意, アドレスを表す文字列]
アドレスファミリーには Socket::AF_INET 等の定数の他に文字列
で "AF_INET" もしくは "AF_INET6" もしくは nil が
指定できます。ただしIPv6が使えな......なります。アドレスファミリーに
nil を指定することは Socket::AF_UNSPEC を指定すること
と等価です。
サービス、ホストの指定に関しては lib:socket#service_format、
lib:socket#host_formatを参照してください。
要素が3つの場合でも、... -
Socket
. unpack _ sockaddr _ in(sockaddr) -> Array (310.0) -
lib:socket#pack_stringを unpack したアドレスを返します。返される値は [port, ipaddr] の配列です。
...:socket#pack_stringを
unpack したアドレスを返します。返される値は [port, ipaddr]
の配列です。
@param sockaddr ソケットアドレス構造体を pack した文字列lib:socket#pack_stringを指定します。
例:
require 'socket'
p Socket.unpack_sockaddr_in(Socket.......sockaddr_in("echo", "localhost"))
=> [7, "127.0.0.1"]
p Socket.unpack_sockaddr_in(Socket.sockaddr_in("echo", "::1"))
=> [7, "::1"]... -
Socket
:: Option # unpack(template) -> Array (310.0) -
data に対し String#unpack を呼び出し、その結果を返します。
data に対し String#unpack を呼び出し、その結果を返します。
このメソッドは過去との互換性のために存在します。 -
TCPSocket
. gethostbyname(host) -> Array (310.0) -
ホスト名または IP アドレス (整数または"127.0.0.1" のような文字列)からホストの情報を返します。ホスト情報は、ホ スト名、ホストの別名の配列、ホストのアドレスタイプ、ホストの アドレスを各要素とする配列です。ホストのアドレスは octet decimal の文字列 ("127.0.0.1"のような文字列) や IPv6 アドレス ("::1" のような文字列) です。
...。
@return ホスト名、ホストの別名の配列、ホストのアドレスタイプ、ホストのアドレスを各要素とする配列を返します。
例:
require 'socket'
p TCPSocket.gethostbyname("www.ruby-lang.org")
#=> ["beryllium.ruby-lang.org", [], 2, "210.163.138.100"]... -
UDPSocket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Array] (310.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。
...ットからデータを受け取ります。
maxlen で受け取るデータの最大バイト数を指定します。
flags はフラグで、Socket::MSG_* の bitwise OR を渡します。
詳しくは recvfrom(2) を参照してください。
返り値はデータの文字列と送り元の......可能であることを意味する例外には、IO::WaitReadable が extend
されています。
require 'socket'
s1 = UDPSocket.new
s1.bind("127.0.0.1", 0)
s2 = UDPSocket.new
s2.bind("127.0.0.1", 0)
s2.connect(*s1.addr.values_at(3,1))
s1.connect(*s2.addr.values_at(3,1))
s1.sen......emulate blocking recvfrom
p s2.recvfrom_nonblock(10)
#=> ["aaa", ["AF_INET", 33302, "localhost.localdomain", "127.0.0.1"]]
rescue IO::WaitReadable
IO.select([s2])
retry
end
@param maxlen 受け取るデータの最大バイト数
@param flags フラグ
@see IPSocket#recvfrom... -
BasicSocket
# sendmsg(mesg , flags=0 , dest _ sockaddr=nil , *controls) -> Integer (25.0) -
sendmsg(2) を用いてメッセージを送ります。
...ンブロッキング方式で通信したい
場合は BasicSocket#sendmsg_nonblock を用います。
ソケットが connection-less の場合は dest_sockaddr で
通信先のアドレスを指定しなければなりません。Socket.sockaddr_in
の返り値や Addrinfo オブジェクトを......ます。
Socket::AncillaryData のインスタンスや
3要素(cmsg_level, cmsg_type, cmsg_data) の配列を用いることができます。
送ったバイト数を返します。
# UnixSocket#send_io の実装例
# use Socket::AncillaryData.
require 'socket'
ancdata = Socket::Ancill......aryData.int(:UNIX, :SOCKET, :RIGHTS, io.fileno)
sock.sendmsg("a", 0, nil, ancdata)
# use 3-element array.
ancdata = [:SOCKET, :RIGHTS, [io.fileno].pack("i!")]
sock.sendmsg("\0", 0, nil, ancdata)
@param mesg メッセージ文字列
@param flags フラグ(Socket::MSG_* という定数の...