種類
- 特異メソッド (6)
- 定数 (5)
- インスタンスメソッド (4)
ライブラリ
- socket (15)
キーワード
-
AF
_ INET6 (1) -
NI
_ DGRAM (1) -
PF
_ INET (1) -
PF
_ INET6 (1) - accept (1)
- connect (1)
-
connect
_ nonblock (1) - getaddrinfo (1)
- gethostbyaddr (1)
- gethostbyname (1)
- getnameinfo (1)
- new (1)
- open (1)
- recvfrom (1)
検索結果
先頭5件
-
Socket
:: AF _ INET -> Integer (54307.0) -
IPv4。 Socket.open の第一引数 domain に使用します。
...IPv4。
Socket.open の第一引数 domain に使用します。
@see sys/socket.h(header), socket(2freebsd), ip(7linux)... -
Socket
:: AF _ INET6 -> Integer (18307.0) -
IPv6。 Socket.open の第一引数 domain に使用します。
...IPv6。
Socket.open の第一引数 domain に使用します。
@see sys/socket.h(header), socket(2freebsd), ipv6(7linux)... -
Socket
:: PF _ INET -> Integer (9007.0) -
IPv4。 Socket.open の第一引数 domain に使用します。
...IPv4。
Socket.open の第一引数 domain に使用します。
@see sys/socket.h(header), socket(2freebsd), ip(7linux)... -
Socket
:: PF _ INET6 -> Integer (9007.0) -
IPv6。 Socket.open の第一引数 domain に使用します。
...IPv6。
Socket.open の第一引数 domain に使用します。
@see sys/socket.h(header), socket(2freebsd), ipv6(7linux)... -
Socket
. gethostbyaddr(host , type = Socket :: AF _ INET) -> Array (373.0) -
sockaddr 構造体をパックした文字列からホスト情報を返します。 ホスト情報の構造は Socket.gethostbyname と同じです。 type には、アドレスタイプ(デフォルトは Socket::AF_INET)を指定します。
...は Socket.gethostbyname と同じです。
type には、アドレスタイプ(デフォルトは
Socket::AF_INET)を指定します。
@param host ホストを文字列で指定します。
@param type アドレスタイプ(デフォルトはSocket::AF_INET)を指定します。
@raise SocketEr... -
Socket
. new(domain , type , protocol=0) -> Socket (118.0) -
新しいソケットを生成します。domain、type、 protocol はインクルードファイルにある定数で指定しま す。ほとんどの定数は Socket::AF_INET のように Socket クラスの定数として定義されています。domain とtype に関しては、"AF_INET", "SOCK_STREAM" のように文字列でも指定できますが、文 字列ですべての機能を指定できる保証はありません。
...します。domain、type、
protocol はインクルードファイルにある定数で指定しま
す。ほとんどの定数は Socket::AF_INET のように
Socket クラスの定数として定義されています。domain
とtype に関しては、"AF_INET",
"SOCK_STREAM" のように文字......りません。
例えば、IPv4 の TCP ソケットは以下のように生成されます。
require 'socket'
s = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
なお、socket(2) の domain 引数において AF_ と PF_ のどちらの定数を使用するかについては混乱......ここでは AF_ を使用しています。
@param domain 例えば、<sys/socket.h> のようなインクルードファイルに定義されている定数を指定します。
@param type 例えば、<sys/socket.h> のようなインクルードファイルに定義されている定数を... -
Socket
. open(domain , type , protocol=0) -> Socket (118.0) -
新しいソケットを生成します。domain、type、 protocol はインクルードファイルにある定数で指定しま す。ほとんどの定数は Socket::AF_INET のように Socket クラスの定数として定義されています。domain とtype に関しては、"AF_INET", "SOCK_STREAM" のように文字列でも指定できますが、文 字列ですべての機能を指定できる保証はありません。
...します。domain、type、
protocol はインクルードファイルにある定数で指定しま
す。ほとんどの定数は Socket::AF_INET のように
Socket クラスの定数として定義されています。domain
とtype に関しては、"AF_INET",
"SOCK_STREAM" のように文字......りません。
例えば、IPv4 の TCP ソケットは以下のように生成されます。
require 'socket'
s = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
なお、socket(2) の domain 引数において AF_ と PF_ のどちらの定数を使用するかについては混乱......ここでは AF_ を使用しています。
@param domain 例えば、<sys/socket.h> のようなインクルードファイルに定義されている定数を指定します。
@param type 例えば、<sys/socket.h> のようなインクルードファイルに定義されている定数を... -
Socket
. getaddrinfo(nodename , servname , family=nil , socktype=nil , protocol=nil , flags=nil) -> Array (112.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
. getnameinfo(sa , flags = 0) -> Array (76.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
# recvfrom(maxlen , flags=0) -> [String , Addrinfo] (40.0) -
ソケットからデータを受け取ります。
...ソケットからデータを受け取ります。
Socket#recv と同様ですが、返り値として
データ文字列と相手ソケットのアドレスのペアが返されます。
flags には Socket::MSG_* という定数の bitwise OR を渡します。
詳しくは recvfrom(2) を参......。詳しくは
Errno と man を見てください。
例:
require 'socket'
s1 = Socket.new(Socket::AF_INET, Socket::SOCK_DGRAM, 0)
s2 = Socket.new(Socket::AF_INET, Socket::SOCK_DGRAM, 0)
s1.bind(Socket.sockaddr_in(0, "0.0.0.0"))
s2.send("foo", 0, s1.getsockname)
mesg, sockaddr......= s1.recvfrom(10)
p mesg #=> "foo"
p sockaddr #=> "\002\000\200r\177\000\000\001\000\000\000\000\000\000\000\000"
p Socket.unpack_sockaddr_in(sockaddr) #=> [32882, "127.0.0.1"]... -
Socket
:: NI _ DGRAM -> Integer (40.0) -
The service specified is a datagram service (looks up UDP ports)。
...vice (looks up UDP ports)。
Socket.getnameinfo, Addrinfo#getnameinfo の引数 flags に渡す
定数です。
require 'socket'
Socket.getnameinfo([ Socket::AF_INET, 514, "127.0.0.1"], Socket::NI_DGRAM)
# => ["localhost", "syslog"]
Socket.getnameinfo([ Socket::AF_INET, 514, "127.0.0.1"... -
Socket
# accept -> Array (22.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
# connect(server _ sockaddr) -> 0 (22.0) -
connect(2) でソケットを接続します。
...connect(2) でソケットを接続します。
server_sockaddr は、
lib:socket#pack_string
もしくは Addrinfo オブジェクト
です。
0 を返します。
@param server_sockaddr 接続先アドレス
@raise Errno::EXXX connect(2) がエラーを報告した場合に発生します。......、connect で www.ruby-lang.org:80 に接続するには以下のようにします。
例:
require 'socket'
s = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
sockaddr = Socket.sockaddr_in(80, "www.ruby-lang.org")
s.connect(sockaddr)
s.write "GET / HTTP/1.0\r\n\r\n"
print s.rea... -
Socket
# connect _ nonblock(server _ sockaddr) -> 0 (22.0) -
ソケットをノンブロッキングモードに設定した後、 connect(2) を呼び出します。
...ソケットをノンブロッキングモードに設定した後、
connect(2) を呼び出します。
引数、返り値は Socket#connect と同じです。
connect が EINPROGRESS エラーを報告した場合、その例外(Errno::EINPROGRESS)
には IO::WaitWritable が Object#extend さ......eb page
require 'socket'
include Socket::Constants
socket = Socket.new(AF_INET, SOCK_STREAM, 0)
sockaddr = Socket.sockaddr_in(80, 'www.google.com')
begin # emulate blocking connect
socket.connect_nonblock(sockaddr)
rescue IO::WaitWritable
IO.select(nil, [socket]) # wait 3-way han......dshake completion
begin
socket.connect_nonblock(sockaddr) # check connection failure
rescue Errno::EISCONN
end
end
socket.write("GET / HTTP/1.0\r\n\r\n")
results = socket.read
@param server_sockaddr 接続先アドレス
@raise Errno::EXXX connect(2) がエラーを報告... -
Socket
. gethostbyname(host) -> Array (22.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...