るりまサーチ (Ruby 2.5.0)

最速Rubyリファレンスマニュアル検索!
895件ヒット [1-100件を表示] (0.092秒)
トップページ > クエリ:>[x] > ライブラリ:socket[x] > バージョン:2.5.0[x]

別のキーワード

  1. _builtin >
  2. bigdecimal >
  3. float >
  4. module >
  5. complex >

モジュール

キーワード

検索結果

<< 1 2 3 ... > >>

Socket.tcp_server_sockets(host, port) -> [Socket] (379.0)

TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。

...番号を持ちます。

require 'socket'

# tcp_server_sockets returns は2つのソケットを返す
socket
s = Socket.tcp_server_sockets(1296)
p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]

# それぞれは IPv4 と IPv6 のソケット
socket
s.each {|s| p s.local_address }
#=>...
...
socket
s = Socket.tcp_server_sockets(0)
socket
s.each {|s| p s.local_address }
#=> #<Addrinfo: [::]:53114 TCP>
# #<Addrinfo: 0.0.0.0:53114 TCP>

# ブロックにソケットの配列が渡される
Socket
.tcp_server_sockets(0) {|sockets|
p sockets #=> [#<Socket:fd 3>, #<Socket:fd...
...4>]
}


@param host 割り当てるホスト名
@param port 割り当てるポート番号
@see Socket.tcp_server_loop...

Socket.tcp_server_sockets(host, port) {|sockets| ...} -> object (379.0)

TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。

...番号を持ちます。

require 'socket'

# tcp_server_sockets returns は2つのソケットを返す
socket
s = Socket.tcp_server_sockets(1296)
p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]

# それぞれは IPv4 と IPv6 のソケット
socket
s.each {|s| p s.local_address }
#=>...
...
socket
s = Socket.tcp_server_sockets(0)
socket
s.each {|s| p s.local_address }
#=> #<Addrinfo: [::]:53114 TCP>
# #<Addrinfo: 0.0.0.0:53114 TCP>

# ブロックにソケットの配列が渡される
Socket
.tcp_server_sockets(0) {|sockets|
p sockets #=> [#<Socket:fd 3>, #<Socket:fd...
...4>]
}


@param host 割り当てるホスト名
@param port 割り当てるポート番号
@see Socket.tcp_server_loop...

Socket.tcp_server_sockets(port) -> [Socket] (379.0)

TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。

...番号を持ちます。

require 'socket'

# tcp_server_sockets returns は2つのソケットを返す
socket
s = Socket.tcp_server_sockets(1296)
p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]

# それぞれは IPv4 と IPv6 のソケット
socket
s.each {|s| p s.local_address }
#=>...
...
socket
s = Socket.tcp_server_sockets(0)
socket
s.each {|s| p s.local_address }
#=> #<Addrinfo: [::]:53114 TCP>
# #<Addrinfo: 0.0.0.0:53114 TCP>

# ブロックにソケットの配列が渡される
Socket
.tcp_server_sockets(0) {|sockets|
p sockets #=> [#<Socket:fd 3>, #<Socket:fd...
...4>]
}


@param host 割り当てるホスト名
@param port 割り当てるポート番号
@see Socket.tcp_server_loop...

Socket.tcp_server_sockets(port) {|sockets| ...} -> object (379.0)

TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。

...番号を持ちます。

require 'socket'

# tcp_server_sockets returns は2つのソケットを返す
socket
s = Socket.tcp_server_sockets(1296)
p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]

# それぞれは IPv4 と IPv6 のソケット
socket
s.each {|s| p s.local_address }
#=>...
...
socket
s = Socket.tcp_server_sockets(0)
socket
s.each {|s| p s.local_address }
#=> #<Addrinfo: [::]:53114 TCP>
# #<Addrinfo: 0.0.0.0:53114 TCP>

# ブロックにソケットの配列が渡される
Socket
.tcp_server_sockets(0) {|sockets|
p sockets #=> [#<Socket:fd 3>, #<Socket:fd...
...4>]
}


@param host 割り当てるホスト名
@param port 割り当てるポート番号
@see Socket.tcp_server_loop...

Socket.unix_server_socket(path) -> Socket (379.0)

Unix サーバソケットを生成します。

...ます。

require 'socket'

socket
= Socket.unix_server_socket("/tmp/s")
p socket #=> #<Socket:fd 3>
p socket.local_address #=> #<Addrinfo: /tmp/s SOCK_STREAM>

Socket
.unix_server_socket("/tmp/sock") {|s|
p s #=> #<Socket:fd 3>
p s.local_a...

絞り込み条件を変える

Socket.unix_server_socket(path) {|sock| ... } -> object (379.0)

Unix サーバソケットを生成します。

...ます。

require 'socket'

socket
= Socket.unix_server_socket("/tmp/s")
p socket #=> #<Socket:fd 3>
p socket.local_address #=> #<Addrinfo: /tmp/s SOCK_STREAM>

Socket
.unix_server_socket("/tmp/sock") {|s|
p s #=> #<Socket:fd 3>
p s.local_a...

Socket.gethostbyname(host) -> Array (361.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::AncillaryData#unix_rights -> [IO] | nil (361.0)

Unix domain socket の SCM_RIGHTS 制御メッセージに含まれる ファイルディスクリプタを IO オブジェクトの配列として返します。

...Unix domain socket の SCM_RIGHTS 制御メッセージに含まれる
ファイルディスクリプタを IO オブジェクトの配列として返します。

得られる IO オブジェクトか IO か Socket です。

この配列は Socket::AncillaryData が初期化されたときに
...
...られます。例えば BasicSocket#recvmsg を :scm_rights => true
オプションを付けて呼びだし、
SCM_RIGHTS な 制御メッセージを受け取ったときに配列が作られます。
適切なオプションを指定しなかった場合は配列は生成されず、
このメ...
...ッドは nil を返します。

require 'socket'

# recvmsg needs :scm_rights=>true for unix_rights
s1, s2 = UNIXSocket.pair
p s1 #=> #<UNIXSocket:fd 3>
s1.sendmsg "stdin and a socket", 0, nil, Socket::AncillaryData.unix_rights(STDIN, s1)
_, _, _...

Addrinfo#ipv6_to_ipv4 -> Addrinfo|nil (343.0)

IPv6 の v4 マップド/互換アドレスを v4 のアドレスに変換します。

...ップド/互換アドレスを v4 のアドレスに変換します。

それ以外のアドレスの場合 nil を返します。

require 'socket'

Addrinfo.ip("::192.0.2.3").ipv6_to_ipv4 #=> #<Addrinfo: 192.0.2.3>
Addrinfo.ip("::ffff:192.0.2.3").ipv6_to_ipv4 #=> #<Addrinfo: 192.0.2.3...

Addrinfo.unix(path, socktype=Socket::SOCK_STREAM) -> Addrinfo (343.0)

Unix ソケットアドレスに対応する Addrinfo オブジェクトを返します。

...トアドレスに対応する Addrinfo オブジェクトを返します。

socktype でソケットタイプを指定します。

require 'socket'

Addrinfo.unix("/tmp/sock") #=> #<Addrinfo: /tmp/sock SOCK_STREAM>
Addrinfo.unix("/tmp/sock", :DGRAM) #=> #<Addrinfo: /tmp/sock SOCK_DG...

絞り込み条件を変える

BasicSocket#local_address -> Addrinfo (343.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 (343.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...

Socket.new(domain, type, protocol=0) -> Socket (343.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 (343.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::Option.bool(family, level, optname, boolean) -> Socket::Option (343.0)

整数をデータとして持つ Socket::Option オブジェクト新たに生成し返します。

...整数をデータとして持つ Socket::Option オブジェクト新たに生成し返します。

family, level, optname には Socket::SOL_SOCKET のような整数の他、
文字列("SOL_SOCKET", "SOCKET")、シンボル(:SOL_SOCKET, :SOCKET)を
指定することができます。

@param f...
...ションの名前
@param boolean データ(真偽値)

require 'socket'

p Socket::Option.bool(:INET, :SOCKET, :KEEPALIVE, true)
# => #<Socket::Option: INET SOCKET KEEPALIVE 1>

p Socket::Option.bool(:INET, :SOCKET, :KEEPALIVE, false)
# => #<Socket::Option: AF_INET SOCKET KEEPALIVE 0>...

絞り込み条件を変える

UDPSocket.new(address_family=Socket::AF_INET) -> UDPSocket (343.0)

新しい UDP ソケットを返します。

...ss_family には Socket::AF_INET のような整数、:INET のような
シンボル、"INET" のような文字列を指定することができます。

require 'socket'

UDPSocket.new # => #<UDPSocket:fd 3>
UDPSocket.new(Socket::AF_INET6) # => #<UDPSocket:fd 4>

@param a...

UDPSocket.open(address_family=Socket::AF_INET) -> UDPSocket (343.0)

新しい UDP ソケットを返します。

...ss_family には Socket::AF_INET のような整数、:INET のような
シンボル、"INET" のような文字列を指定することができます。

require 'socket'

UDPSocket.new # => #<UDPSocket:fd 3>
UDPSocket.new(Socket::AF_INET6) # => #<UDPSocket:fd 4>

@param a...

Addrinfo#family_addrinfo(host, port) -> Addrinfo (325.0)

引数から自身に「似た」Addrinfo オブジェクトを生成します。

...「似た」の意味はプロトコルファミリ、ソケットタイプ、プロトコルが
同じことを意味します。

require 'socket'

Addrinfo.tcp("0.0.0.0", 4649).family_addrinfo("www.ruby-lang.org", 80)
#=> #<Addrinfo: 221.186.184.68:80 TCP (www.ruby-lang.org:80)>

Addr...
...info.unix("/tmp/sock").family_addrinfo("/tmp/sock2")
#=> #<Addrinfo: /tmp/sock2 SOCK_STREAM>

@param host ホスト(IP アドレスもしくはホスト名)
@param port ポート番号(整数)もしくはサービス名(文字列)
@param path Unix domain socket のパス...

Addrinfo#family_addrinfo(path) -> Addrinfo (325.0)

引数から自身に「似た」Addrinfo オブジェクトを生成します。

...「似た」の意味はプロトコルファミリ、ソケットタイプ、プロトコルが
同じことを意味します。

require 'socket'

Addrinfo.tcp("0.0.0.0", 4649).family_addrinfo("www.ruby-lang.org", 80)
#=> #<Addrinfo: 221.186.184.68:80 TCP (www.ruby-lang.org:80)>

Addr...
...info.unix("/tmp/sock").family_addrinfo("/tmp/sock2")
#=> #<Addrinfo: /tmp/sock2 SOCK_STREAM>

@param host ホスト(IP アドレスもしくはホスト名)
@param port ポート番号(整数)もしくはサービス名(文字列)
@param path Unix domain socket のパス...

BasicSocket#connect_address -> Addrinfo (325.0)

ローカルマシン内で接続するのに適当なアドレスを Addrinfo オブジェクトで返します。

...ローカルマシン内で接続するのに適当なアドレスを Addrinfo
オブジェクトで返します。

BasicSocket#local_address の返り値
以下の点を除いては同じものを返します。
* IPv4 の不定アドレス(0.0.0.0) は IPv4 のループバックアドレス(12...
...:) は IPv6 のループバックアドレス(::1)
に置換される

BasicSocket#local_address が接続先として不適なアドレスを返す場合は
例外 SocketError が発生します。

require 'socket'

Addrinfo.tcp("0.0.0.0", 0).listen {|serv|
p serv.connect_address #=> #...
...<Addrinfo: 127.0.0.1:53660 TCP>
serv.connect_address.connect {|c|
s, _ = serv.accept
p [c, s] #=> [#<Socket:fd 4>, #<Socket:fd 6>]
}
}


@raise SocketError アドレスが接続に不適な場合に返します
@see BasicSocket#local_address...

絞り込み条件を変える

BasicSocket#getsockopt(level, optname) -> Socket::Option (325.0)

ソケットのオプションを取得します。getsockopt(2) を参照してください。 取得したオプションのデータを Socket::Option で返します。

...ください。
取得したオプションのデータを Socket::Option で返します。

level, optname には Socket::SOL_SOCKET Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いるこ...
...@see BasicSocket#setsockopt

例:

require 'socket'

serv = Socket.tcp_server_sockets("", 0)[0]
c = serv.local_address.connect
s = serv.accept
opt = c.getsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY)
# c.getsockopt("TCP", "NODELAY"), なども可能
p opt #=> #<Socket::Option: I...
...NET TCP NODELAY 0>
p opt.bool #=> false (Nagle アルゴリズム有効)
p opt.unpack("i")[0] #=> 0 (Socket::Option#unpack が互換性のために存在する)
# 整数値の場合は Socket::Option#int を用いる
p c.getsockopt(:IP, :TTL).int #=> 64...

Socket::AncillaryData#ipv6_pktinfo_addr -> Addrinfo (325.0)

自身の type が IPV6_PKTINFO である場合、保持しているデータ (アドレス、インターフェースのインデックス) のアドレスを返します。

...す。

require 'socket'

addr = Addrinfo.ip("::1")
ifindex = 0
ancdata = Socket::AncillaryData.ipv6_pktinfo(addr, ifindex)
p ancdata.ipv6_pktinfo_addr #=> #<Addrinfo: ::1>

@see Socket::AncillaryData.ipv6_pktinfo,
Socket
::AncillaryData#ipv6_pktinfo,
Socket
::AncillaryData#ipv6_...

Socket::AncillaryData#timestamp -> Time (325.0)

タイムスタンプ制御メッセージに含まれる時刻を Time オブジェクト で返します。

...以下のいずれかです。
* SOL_SOCKET/SCM_TIMESTAMP (micro second) GNU/Linux, FreeBSD, NetBSD, OpenBSD, Solaris, MacOS X
* SOL_SOCKET/SCM_TIMESTAMPNS (nano second) GNU/Linux
* SOL_SOCKET/SCM_BINTIME (2**(-64) second) FreeBSD

require 'socket'

Addrinfo.udp("127.0.0.1", 0).bind {|s...
...1|
Addrinfo.udp("127.0.0.1", 0).bind {|s2|
s1.setsockopt(:SOCKET, :TIMESTAMP, true)
s2.send "a", 0, s1.local_address
ctl = s1.recvmsg.last
p ctl
#=> #<Socket::AncillaryData: INET SOCKET TIMESTAMP 2009-02-24 17:35:46.775581>
t = ctl.timestamp
p t...
...00
p t.usec #=> 775581
p t.nsec #=> 775581000
}
}

@see Socket::Constants::SCM_TIMESTAMP,
Socket
::Constants::SCM_TIMESTAMPNS,
Socket
::Constants::SCM_BINTIME,
Socket
::Constants::SO_TIMESTAMP,
Socket
::Constants::SO_TIMESTAMPNS,
Socket
::Constants::SO_BINTIME...

Socket::AncillaryData.int(family, cmsg_level, cmsg_type, integer) -> Socket::AncillaryData (325.0)

データとして整数を保持する Socket::AncillaryData オブジェクトを生成します。

...持する
Socket
::AncillaryData オブジェクトを生成します。

整数データのサイズおよびエンディアンは実行するホストによって異なります。

require 'socket'

p Socket::AncillaryData.int(:UNIX, :SOCKET, :RIGHTS, STDERR.fileno)
#=> #<Socket::AncillaryDa...
...ta: UNIX SOCKET RIGHTS 2>

@param family ソケットファミリー
@param cmsg_level プロトコル
@param cmsg_type 補助データの種類
@param integer データ内容

@see Socket::AncillaryData.new...

Socket::AncillaryData.ip_pktinfo(addr, ifindex, spec_dst=addr) -> Socket::AncillaryData (325.0)

type が IP_PKTINFO である AncillaryData を生成します。

...によっては使えない場合があります。

require 'socket'

addr = Addrinfo.ip("127.0.0.1")
ifindex = 0
spec_dst = Addrinfo.ip("127.0.0.1")
p Socket::AncillaryData.ip_pktinfo(addr, ifindex, spec_dst)
#=> #<Socket::AncillaryData: INET IP PKTINFO 127.0.0.1 ifindex:0 spec_dst:127...
....0.0.1>

@param addr アドレス(文字列もしくは Addrinfo)
@param ifindex インターフェースのインデックス(整数)
@param spec_dst パケットのローカルアドレス(文字列もしくは Addrinfo)

@see Socket::AncillaryData#ip_pktinfo,
Socket
::Constants::IP_PKTINFO...

絞り込み条件を変える

Socket::AncillaryData.ipv6_pktinfo(addr, ifindex) -> Socket::AncillaryData (325.0)

type が IPV6_PKTINFO である AncillaryData を生成します。

...ta を生成します。

IPV6_PKTINFO は 3542 で定義されています。

require 'socket'

addr = Addrinfo.ip("::1")
ifindex = 0
p Socket::AncillaryData.ipv6_pktinfo(addr, ifindex)
#=> #<Socket::AncillaryData: INET6 IPV6 PKTINFO ::1 ifindex:0>

@param addr アドレス(文字列も...
...しくは Addrinfo)
@param ifindex インターフェースのインデックス(整数)

@see Socket::AncillaryData#ipv6_pktinfo,
Socket
::Constants::IPV6_PKTINFO...

Socket::AncillaryData.unix_rights(*ios) -> Socket::AncillaryData (325.0)

ios で指定したファイルのファイルデスクリプタを データとして持つ family=AF_UNIX, level=SOL_SOCKET, type=SCM_RIGHTS という Socket::AncillaryData オブジェクトを生成して返します。

...level=SOL_SOCKET, type=SCM_RIGHTS
という Socket::AncillaryData オブジェクトを生成して返します。

require 'socket'

p Socket::AncillaryData.unix_rights(STDERR)
#=> #<Socket::AncillaryData: UNIX SOCKET RIGHTS 2>

@param ios IO オブジェクトの配列
@see Socket::Ancillar...
...yData#unix_rights,
Socket
::Constants::SCM_RIGHTS...

Socket::Option.new(family, level, optname, data) -> Socket::Option (325.0)

Socket::Option オブジェクト新たに生成し返します。

...
Socket
::Option オブジェクト新たに生成し返します。

family, level, optname には Socket::SOL_SOCKET のような整数の他、
文字列("SOL_SOCKET", "SOCKET")、シンボル(:SOL_SOCKET, :SOCKET)を
指定することができます。

@param family ソケットファミリー...
...@param optname オプションの名前
@param data データ(文字列)

@see Socket::Option.int, Socket::Option.bool, Socket::Option.linger

require 'socket'

sockopt = Socket::Option.new(:INET, :SOCKET, :KEEPALIVE, [1].pack("i"))
p sockopt #=> #<Socket::Option: INET SOCKET KEEPALIVE 1>...

Addrinfo#afamily -> Integer (307.0)

アドレスファミリーを整数で返します。

...アドレスファミリーを整数で返します。

require 'socket'

Addrinfo.tcp("localhost", 80).afamily == Socket::AF_INET #=> true...

Addrinfo#bind -> Socket (307.0)

自身のアドレスにバインドされたソケットを作成します。

...ブロックに生成された Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、生成された Socket
オブジェクトが返されます。

require 'socket'

Addrinfo.udp("0.0.0.0", 9981...

絞り込み条件を変える

Addrinfo#bind {|sock| ... } -> object (307.0)

自身のアドレスにバインドされたソケットを作成します。

...ブロックに生成された Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、生成された Socket
オブジェクトが返されます。

require 'socket'

Addrinfo.udp("0.0.0.0", 9981...

Addrinfo#canonname -> String|nil (307.0)

カノニカル名を文字列で返します。

...返します。

カノニカル名は Addrinfo.getaddrinfo に Socket::AI_CANONINAME
を指定した場合にセットされます。

require 'socket'

list = Addrinfo.getaddrinfo("www.ruby-lang.org", 80, :INET, :STREAM, nil, Socket::AI_CANONNAME)
p list[0] #=> #<Addrinfo: 221.186.184.68:80...

Addrinfo#connect -> Socket (307.0)

自身のアドレスへソケットを接続します。

...す。

ブロックが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済み Socket
オブジェクトが返されます。...

Addrinfo#connect {|sock| ... } -> object (307.0)

自身のアドレスへソケットを接続します。

...す。

ブロックが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済み Socket
オブジェクトが返されます。...

Addrinfo#connect_from(host, port) -> Socket (307.0)

引数で指定されたアドレスから 自身のアドレスへソケットを接続します。

...クが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済みSocket
オブジェクトが返されます。

引数で指定した...
...アドレスはソケット接続のローカル側のアドレスになります。

require 'socket'

Addrinfo.tcp("www.ruby-lang.org", 80).connect_from("0.0.0.0", 4649) {|s|
s.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n"
puts s.read
}

@param host ホスト(IP アドレ...

絞り込み条件を変える

Addrinfo#connect_from(host, port) {|sock| ... } -> object (307.0)

引数で指定されたアドレスから 自身のアドレスへソケットを接続します。

...クが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済みSocket
オブジェクトが返されます。

引数で指定した...
...アドレスはソケット接続のローカル側のアドレスになります。

require 'socket'

Addrinfo.tcp("www.ruby-lang.org", 80).connect_from("0.0.0.0", 4649) {|s|
s.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n"
puts s.read
}

@param host ホスト(IP アドレ...

Addrinfo#connect_to(host, port) -> Socket (307.0)

自身のアドレスから指定したホストへソケット接続します。

...クが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済み Socket
オブジェクトが返されます。

@param host ホス...

Addrinfo#connect_to(host, port) {|sock| ... } -> object (307.0)

自身のアドレスから指定したホストへソケット接続します。

...クが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済み Socket
オブジェクトが返されます。

@param host ホス...

Addrinfo#getnameinfo(flags=0) -> [String, String] (307.0)

ノード名とサービスを文字列の配列で返します。

... Socket::NI_??? という名前の定数のビット OR を渡します。

require 'socket'

Addrinfo.tcp("127.0.0.1", 80).getnameinfo
#=> ["localhost", "www"]
Addrinfo.tcp("127.0.0.1", 80).getnameinfo(Socket::NI_NUMERICSERV)
#=> ["localhost", "80"]

@param flags フラグ
@raise SocketEr...
...ror getnameinfo(3) がエラーを起こした場合に生じる例外

@see Socket.getnameinfo...

Addrinfo#inspect_sockaddr -> String (307.0)

アドレスやポート番号などの情報を人間に読める形の文字列で返します。

...アドレスやポート番号などの情報を人間に読める形の文字列で返します。

require 'socket'

Addrinfo.tcp("localhost", 80).inspect_sockaddr #=> "127.0.0.1:80"
Addrinfo.tcp("ip6-localhost", 80).inspect_sockaddr #=> "[::1]:80"
Addrinfo.unix("/tmp/sock").inspect_so...

絞り込み条件を変える

Addrinfo#ip? -> bool (307.0)

アドレスが IP (v4/v6) のものならば true を返します。

...アドレスが IP (v4/v6) のものならば true を返します。

require 'socket'

Addrinfo.tcp("127.0.0.1", 80).ip? #=> true
Addrinfo.tcp("::1", 80).ip? #=> true
Addrinfo.unix("/tmp/sock").ip? #=> false

@see Addrinfo#ipv4?, Addrinfo#ipv6?, Addrinfo#unix?...

Addrinfo#ip_address -> String (307.0)

IP アドレスを文字列で返します。

...IP アドレスを文字列で返します。

require 'socket'

Addrinfo.tcp("127.0.0.1", 80).ip_address #=> "127.0.0.1"
Addrinfo.tcp("::1", 80).ip_address #=> "::1"

@see Addrinfo#ip_port, Addrinfo#ip_unpack...

Addrinfo#ip_port -> Integer (307.0)

ポート番号を整数で返します。

...ポート番号を整数で返します。

require 'socket'

Addrinfo.tcp("127.0.0.1", 80).ip_port #=> 80
Addrinfo.tcp("::1", 80).ip_port #=> 80

@see Addrinfo#ip_address, Addrinfo#ip_unpack...

Addrinfo#ip_unpack -> [String, Integer] (307.0)

IP アドレスとポート番号を 2 要素の配列で返します。

...IP アドレスとポート番号を 2 要素の配列で返します。

require 'socket'

Addrinfo.tcp("127.0.0.1", 80).ip_unpack #=> ["127.0.0.1", 80]
Addrinfo.tcp("::1", 80).ip_unpack #=> ["::1", 80]

@see Addrinfo#ip_address, Addrinfo#ip_port...

Addrinfo#ipv4? -> bool (307.0)

アドレスが IPv4 のものならば true を返します。

...アドレスが IPv4 のものならば true を返します。

@see Addrinfo#ip?, Addrinfo#ipv6?

require 'socket'

Addrinfo.tcp("127.0.0.1", 80).ipv4? #=> true
Addrinfo.tcp("::1", 80).ipv4? #=> false
Addrinfo.unix("/tmp/sock").ipv4? #=> false...

絞り込み条件を変える

Addrinfo#ipv4_loopback? -> bool (307.0)

IPv4 のループバックアドレス(127.0.0.0/8) であれば真を返します。

IPv4 のループバックアドレス(127.0.0.0/8) であれば真を返します。

@see Addrinfo#ipv6_loopback?

Addrinfo#ipv4_multicast? -> bool (307.0)

IPv4 のマルチキャストアドレス(224.0.0.0/4)であれば真を返します。

IPv4 のマルチキャストアドレス(224.0.0.0/4)であれば真を返します。

Addrinfo#ipv4_private? -> bool (307.0)

IPv4 のプライベートアドレス(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) であれば真を返します。

IPv4 のプライベートアドレス(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
であれば真を返します。

Addrinfo#ipv6? -> bool (307.0)

アドレスが IPv6 のものならば true を返します。

...アドレスが IPv6 のものならば true を返します。

require 'socket'

Addrinfo.tcp("127.0.0.1", 80).ipv6? #=> false
Addrinfo.tcp("::1", 80).ipv6? #=> true
Addrinfo.unix("/tmp/sock").ipv6? #=> false

@see Addrinfo#ipv4?, Addrinfo#ip?...

Addrinfo#ipv6_linklocal? -> bool (307.0)

IPv6 のリンクローカルアドレス(fe80::/10, 4291)であれば真を返します。

IPv6 のリンクローカルアドレス(fe80::/10, 4291)であれば真を返します。

絞り込み条件を変える

Addrinfo#ipv6_loopback? -> bool (307.0)

IPv6 のループバックアドレス(::1)であれば真を返します。

IPv6 のループバックアドレス(::1)であれば真を返します。

@see Addrinfo#ipv4_loopback?

Addrinfo#ipv6_mc_global? -> bool (307.0)

IPv6 のマルチキャスト(グローバルスコープ) アドレスであれば真を返します。

IPv6 のマルチキャスト(グローバルスコープ)
アドレスであれば真を返します。

Addrinfo#ipv6_mc_linklocal? -> bool (307.0)

IPv6 のマルチキャスト(リンクローカルスコープ)アドレスであれば真を返します。

IPv6 のマルチキャスト(リンクローカルスコープ)アドレスであれば真を返します。

Addrinfo#ipv6_mc_nodelocal? -> bool (307.0)

IPv6 のマルチキャスト(ノードローカルスコープ)アドレスであれば真を返します。

IPv6 のマルチキャスト(ノードローカルスコープ)アドレスであれば真を返します。

Addrinfo#ipv6_mc_orglocal? -> bool (307.0)

IPv6 のマルチキャスト(組織(organization)ローカルスコープ) アドレスであれば真を返します。

IPv6 のマルチキャスト(組織(organization)ローカルスコープ)
アドレスであれば真を返します。

絞り込み条件を変える

Addrinfo#ipv6_mc_sitelocal? -> bool (307.0)

IPv6 のマルチキャスト(サイトローカルスコープ)アドレスであれば真を返します。

IPv6 のマルチキャスト(サイトローカルスコープ)アドレスであれば真を返します。

Addrinfo#ipv6_multicast? -> bool (307.0)

IPv6 のマルチキャストアドレス(ff00::/8)であれば真を返します。

IPv6 のマルチキャストアドレス(ff00::/8)であれば真を返します。

Addrinfo#ipv6_sitelocal? -> bool (307.0)

IPv6 のサイトローカルアドレス(fec0::/10, 3513)であれば真を返します。

IPv6 のサイトローカルアドレス(fec0::/10, 3513)であれば真を返します。

Addrinfo#ipv6_unique_local? -> bool (307.0)

IPv6 のユニークローカルアドレス(fc00::/7, 4193)であれば真を返します。

IPv6 のユニークローカルアドレス(fc00::/7, 4193)であれば真を返します。

Addrinfo#ipv6_unspecified? -> bool (307.0)

IPv6 の不特定アドレス(unspecified address)(::)であれば真を返します。

IPv6 の不特定アドレス(unspecified address)(::)であれば真を返します。

絞り込み条件を変える

Addrinfo#ipv6_v4compat? -> bool (307.0)

IPv6 の v4互換アドレス(::/80)であれば真を返します。

IPv6 の v4互換アドレス(::/80)であれば真を返します。

Addrinfo#ipv6_v4mapped? -> bool (307.0)

IPv6 の v4にマップされたアドレス(::ffff:0:0/80)であれば真を返します。

IPv6 の v4にマップされたアドレス(::ffff:0:0/80)であれば真を返します。

Addrinfo#listen(backlog=5) -> Socket (307.0)

自身のアドレスにバインドされたソケットを作成し、 listen(2) を実行します。

...渡されたときにはそのブロックに生成された Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、生成された Socket
オブジェクトが返されます。

@param backlog バ...

Addrinfo#listen(backlog=5) {|sock| ... } -> object (307.0)

自身のアドレスにバインドされたソケットを作成し、 listen(2) を実行します。

...渡されたときにはそのブロックに生成された Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、生成された Socket
オブジェクトが返されます。

@param backlog バ...

Addrinfo#pfamily -> Integer (307.0)

プロトコルファミリーを整数で返します。

...プロトコルファミリーを整数で返します。

require 'socket'

Addrinfo.tcp("localhost", 80).pfamily == Socket::PF_INET #=> true...

絞り込み条件を変える

Addrinfo#protocol -> Integer (307.0)

ソケットプロトコルを整数で返します。

...ソケットプロトコルを整数で返します。

require 'socket'

Addrinfo.tcp("localhost", 80).protocol == Socket::IPPROTO_TCP #=> true...

Addrinfo#socktype -> Integer (307.0)

ソケットタイプを整数で返します。

...ソケットタイプを整数で返します。

require 'socket'

Addrinfo.tcp("localhost", 80).socktype == Socket::SOCK_STREAM #=> true...

Addrinfo#to_s -> String (307.0)

struct sockaddr をパックした形式の文字列に変換します。

...struct sockaddr をパックした形式の文字列に変換します。

require 'socket'

Addrinfo.tcp("localhost", 80).to_sockaddr
#=> "\x02\x00\x00P\x7F\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00"...

Addrinfo#to_sockaddr -> String (307.0)

struct sockaddr をパックした形式の文字列に変換します。

...struct sockaddr をパックした形式の文字列に変換します。

require 'socket'

Addrinfo.tcp("localhost", 80).to_sockaddr
#=> "\x02\x00\x00P\x7F\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00"...

Addrinfo#unix? -> bool (307.0)

アドレスが Unix domain socket のものならば true を返します。

...アドレスが Unix domain socket のものならば true を返します。

require 'socket'

Addrinfo.tcp("127.0.0.1", 80).unix? #=> false
Addrinfo.tcp("::1", 80).unix? #=> false
Addrinfo.unix("/tmp/sock").unix? #=> true

@see Addrinfo#ip?...

絞り込み条件を変える

Addrinfo#unix_path -> String (307.0)

Unix domain socket の path を文字列で返します。

...Unix domain socket の path を文字列で返します。

require 'socket'

Addrinfo.unix("/tmp/sock").unix_path #=> "/tmp/sock"

@raise SocketError アドレスが Unix domain socket のものでない場合に発生します...

Addrinfo.foreach(nodename, service, family=nil, socktype=nil, protocol=nil, flags=0) -> Enumerator (307.0)

Addrinfo.getaddrinfo で得られる配列の各要素を繰り返します。

Addrinfo.getaddrinfo で得られる配列の各要素を繰り返します。

ブロックを省略した場合は Enumerator を返します。

@param nodename ノード名文字列(ホスト名もしくは IP アドレス)
@param service サービス名(文字列もしくはポート番号の整数)
@param family プロトコルファミリー(整数、文字列、シンボル、もしくは nil)
@param socktype ソケットタイプ(整数、文字列、シンボル、もしくは nil)
@param protocol プロトコル(整数、もしくは nil)
@param flags フラグ(...

Addrinfo.foreach(nodename, service, family=nil, socktype=nil, protocol=nil, flags=0) {|addrinfo| ... } -> [Addrinfo] (307.0)

Addrinfo.getaddrinfo で得られる配列の各要素を繰り返します。

Addrinfo.getaddrinfo で得られる配列の各要素を繰り返します。

ブロックを省略した場合は Enumerator を返します。

@param nodename ノード名文字列(ホスト名もしくは IP アドレス)
@param service サービス名(文字列もしくはポート番号の整数)
@param family プロトコルファミリー(整数、文字列、シンボル、もしくは nil)
@param socktype ソケットタイプ(整数、文字列、シンボル、もしくは nil)
@param protocol プロトコル(整数、もしくは nil)
@param flags フラグ(...

Addrinfo.getaddrinfo(nodename, service, family=nil, socktype=nil, protocol=nil, flags=0) -> [Addrinfo] (307.0)

パラメータから複数の Addrinfo オブジェクトを生成し、その配列を返します。

...場合には制限しないことを意味します。
IPv6 に制限したい場合には family に PF_INET6 を指定します。

flags には Socket::AI_??? という定数のビット OR を取ります。

アドレスの使い方がわかっている場合には socktype を明示すべき...
...フォームが存在します。512 のようなポート番号は
socktype なしでは曖昧な指定となるためです。

例:

require 'socket'

Addrinfo.getaddrinfo("www.kame.net", 80, nil, :STREAM)
#=> [#<Addrinfo: 203.178.141.194:80 TCP (www.kame.net:80)>,
# #<Addrinfo: [2001:...
...ケットタイプ(整数、文字列、シンボル、もしくは nil)
@param protocol プロトコル(整数、もしくは nil)
@param flags フラグ(整数)

@raise SocketError getaddrinfo(3)がエラーを返したときに発生する例外です
@see Addrinfo.foreach, Socket.getaddrinfo...

Addrinfo.ip(host) -> Addrinfo (307.0)

IP アドレスに対する Addrinfo オブジェクトを返します。

...port, socktype, protocol は 0 で初期化されます。
つまりこの返り値はソケットを生成するには不適です。

require 'socket'

Addrinfo.ip("localhost") #=> #<Addrinfo: 127.0.0.1 (localhost)>

@param host ホスト(IP アドレスもしくはホスト名)
@see Addrinfo....

絞り込み条件を変える

Addrinfo.new(sockaddr, family=Socket::PF_UNSPEC, socktype=0, protocol=0) -> Addrinfo (307.0)

新たな Addrinfo オブジェクトを返します。

...e, protocol
socket(2) のパラメータに対応します。

sockaddr には文字列もしくは配列を指定します。
配列の場合は IPSocket#addr や UNIXSocket#addr の
値と互換でなければなりません。
文字列の場合は Socket.sockaddr_in や
Socket
.unpack_sockadd...
...* ["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_INET6 を指定した場合、...
... Socket::PF_INET のようなプロコルファミリーを指定します。
文字列やシンボル名を指定することができます(PF_ というプレフィクスは
省略することもできます)。例えば :INET, :INET6, :UNIX, "PF_INET" などです。

socktype は Socket::SO...

Addrinfo.tcp(host, port) -> Addrinfo (307.0)

TCP アドレスに対する Addrinfo オブジェクトを返します。

...TCP アドレスに対する Addrinfo オブジェクトを返します。

require 'socket'

Addrinfo.tcp("localhost", "smtp")
#=> #<Addrinfo: 127.0.0.1:25 TCP (localhost:smtp)>

@param host ホスト(IP アドレスもしくはホスト名)
@param port ポート番号(整数)もしくは...

Addrinfo.udp(host, port) -> Addrinfo (307.0)

UDP アドレスに対する Addrinfo オブジェクトを返します。

...UDP アドレスに対する Addrinfo オブジェクトを返します。

require 'socket'

Addrinfo.udp("localhost", "daytime")
#=> #<Addrinfo: 127.0.0.1:13 UDP (localhost:daytime)>

@param host ホスト(IP アドレスもしくはホスト名)
@param port ポート番号(整数)もし...

BasicSocket#do_not_reverse_lookup -> bool (307.0)

ソケットごとのアドレスからホスト名への逆引きの設定を返します。

...きの
BasicSocket.do_not_reverse_lookup の値になります。

require 'socket'

BasicSocket.do_not_reverse_lookup = false
TCPSocket.open("www.ruby-lang.org", 80) {|sock|
p sock.do_not_reverse_lookup # => false
}
BasicSocket.do_not_reverse_lookup = true
TCPSocket.open("www.r...
...uby-lang.org", 80) {|sock|
p sock.do_not_reverse_lookup # => true
}

@see BasicSocket#do_not_reverse_lookup=...

BasicSocket#getpeereid -> [Integer, Integer] (307.0)

Unix ドメインソケットにおいて接続相手の euid と egid を 返します。

..., 2番目の要素が egid です。

ソケットが Unix ドメインソケットでない場合の返り値は
不定です。

require 'socket'

Socket
.unix_server_loop("/tmp/sock") {|s|
begin
euid, egid = s.getpeereid

# Check the connected client is myself or not....

絞り込み条件を変える

BasicSocket#getpeername -> String (307.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 (307.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#recv(maxlen, flags = 0) -> String (307.0)

ソケットからデータを受け取り、文字列として返します。 maxlen は受け取る最大の長さを指定します。 flags については recv(2) を参照してください。flags の デフォルト値は 0 です。flags の指定に必要な定数は Socket クラスで定義されています。(例: Socket::MSG_PEEK)

...は recv(2) を参照してください。flags の
デフォルト値は 0 です。flags の指定に必要な定数は
Socket
クラスで定義されています。(例: Socket::MSG_PEEK)

内部で呼び出す recv(2) が 0 を返した場合、このメソッドは "" を返します。
この...
...@raise Errno::EXXX recvfrom(2) がエラーになった場合などに発生します。

例:

require 'socket'

s1, s2 = UNIXSocket.pair
s1.write "a"
s1.close
p s2.recv(10, Socket::MSG_PEEK) #=> "a"
p s2.recv(10) #=> "a"
p s2.recv(10) #=> ""...

BasicSocket#recv_nonblock(maxlen, flags = 0) -> String (307.0)

ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。

...ンブロッキングモードに設定した後、
recvfrom(2) でソケットからデータを受け取ります。

引数、返り値は BasicSocket#recv と同じです。

recvfrom(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。

@param max...

BasicSocket#recvmsg(maxmesglen=nil, flags=0, maxcontrollen=nil, opts={}) -> [String, Addrinfo, Integer, *Socket::AncillaryData] (307.0)

recvmsg(2) を用いてメッセージを受け取ります。

...ックします。ノンブロッキング方式で通信したい
場合は BasicSocket#recvmsg_nonblock を用います。

maxmesglen, maxcontrollen で受け取るメッセージおよび補助データ
(Socket::AncillaryData)の最大長をバイト単位で指定します。
省略した場合...
...は必要なだけ内部バッファを拡大して
データが切れないようにします。

flags では Socket::MSG_* という名前の定数の biwsise OR を取った
ものを渡します。

opts にはその他のオプションを渡します。今のところ :scm_right => bool
...
...します。詳しくは Socket::AncillaryData#unix_rights
を参照してください。

返り値は配列で得られます。

返り値の配列の最初の要素は受け取ったメッセージを表す文字列です。

2番目の要素は connection-less socket の場合には送り元の...

絞り込み条件を変える

BasicSocket#recvmsg_nonblock(maxmesglen=nil, flags=0, maxcontrollen=nil, opts={}) -> [String, Addrinfo, Integer, *Socket::AncillaryData] (307.0)

recvmsg(2) を用いてノンブロッキング方式でメッセージを受け取ります。

...recvmsg(2) を用いてノンブロッキング方式でメッセージを受け取ります。

ブロッキングの有無以外は BasicSocket#recvmsg と同じです。
詳しくはそちらを参照してください。

@param maxmesglen 受け取るメッセージの最大長
@param flags...

BasicSocket#send(mesg, flags, dest_sockaddr = nil) -> Integer (307.0)

ソケットを介してデータを送ります。flags に関しては send(2) を参照してください。connect していないソケット に対しては送り先である dest_sockaddr を指定する必要があります。実際に送っ たデータの長さを返します。

...レス構造体を pack した文字列」を指定します。

@raise Errno::EXXX データの送信に失敗した場合に発生します。

例:

require 'socket'

s = UDPSocket.new
sockaddr = Socket.sockaddr_in("discard", "localhost")
s.send("The king has donkey ears!", 0, sockaddr)...

BasicSocket#sendmsg(mesg, flags=0, dest_sockaddr=nil, *controls) -> Integer (307.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_* という定数の...

BasicSocket#sendmsg_nonblock(mesg, flags=0, dest_sockaddr=nil, *controls) -> Integer (307.0)

sendmsg(2) を用いてノンブロッキング方式でメッセージを送ります。

...cSocket#sendmsg を見てください。

@return 送ったバイト数
@param mesg メッセージ文字列
@param flags フラグ(Socket::MSG_* という定数の bitwise OR を取ったもの)
@param dest_sockaddr 通信先のアドレス
@param controls 補助データの配列
@see BasicSocket#...

BasicSocket#setsockopt(level, optname, optval) -> 0 (307.0)

ソケットのオプションを設定します。setsockopt(2) を参照してください。

...を設定します。setsockopt(2)
を参照してください。

level, optname には Socket::SOL_SOCKET Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いることができます。

optval...
... Socket::Option で設定値を表現します。

require 'socket'

# 真偽値の場合
#setsockopt could be called like this:
sock.setsockopt(:SOCKET, :REUSEADDR, true)
sock.setsockopt(Socket::SOL_SOCKET,Socket::SO_REUSEADDR, true)
sock.setsockopt(Socket::Option.bool(:INET, :SOCKET,...
...etsockopt(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_...

絞り込み条件を変える

BasicSocket#setsockopt(socketoption) -> 0 (307.0)

ソケットのオプションを設定します。setsockopt(2) を参照してください。

...を設定します。setsockopt(2)
を参照してください。

level, optname には Socket::SOL_SOCKET Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いることができます。

optval...
... Socket::Option で設定値を表現します。

require 'socket'

# 真偽値の場合
#setsockopt could be called like this:
sock.setsockopt(:SOCKET, :REUSEADDR, true)
sock.setsockopt(Socket::SOL_SOCKET,Socket::SO_REUSEADDR, true)
sock.setsockopt(Socket::Option.bool(:INET, :SOCKET,...
...etsockopt(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_...

BasicSocket#shutdown(how = Socket::SHUT_RDWR) -> 0 (307.0)

ソケットの以降の接続を終了させます。

...接続が終了します。

* Socket::SHUT_RD: それ以降の受信が拒否されます
* Socket::SHUT_WR: それ以降の送信が拒否されます
* Socket::SHUT_RDWR: それ以降の送信、受信ともに拒否されます

how を省略すると Socket::SHUT_RDWR を指定したこ...
...とになります。
shutdown(2) を参照してください。

@param how 接続の終了の仕方を Socket::SHUT_RD, Socket::SHUT_WR, Socket::SHUT_RDWR などで指定します。

@raise Errno::EXXX ソケットの以降の接続を終了操作が失敗した場合に発生します。
@raise...

BasicSocket.do_not_reverse_lookup -> bool (307.0)

Socket#do_not_reverse_lookup の Socket オブジェクト生成時の デフォルト値を返します。

...
Socket
#do_not_reverse_lookup の Socket オブジェクト生成時の
デフォルト値を返します。

この設定は大域的に作用します。

デフォルトは true です。...

BasicSocket.for_fd(fd) -> BasicSocket (307.0)

ファイルディスクリプタ fd に対する新しいソケットを生成します。

...はどのクラスの for_fd を呼びだしたかによって決まります。
require 'socket'

BasicSocket.for_fd(fd) # BasicSocket のインスタンスを返す
TCPSocket.for_fd(fd) # TCPSocket のインスタンスを返す

@param fd ファイルディスクリプタ を指定し...

IPSocket#addr -> Array (307.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 (307.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 (307.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...

IPSocket.getaddress(host) -> String (307.0)

ホスト名からホストのアドレスを返します。ホストのアドレスは文 字列は octet decimal の文字列 (例: 127.0.0.1) です。

...ホストのアドレスを返します。ホストのアドレスは文
字列は octet decimal の文字列 (例: 127.0.0.1) です。

@param host ホスト名を文字列で指定します。

例:

require 'socket'

p IPSocket.getaddress("www.ruby-lang.org") #=> "210.163.138.100"...

SOCKSSocket#close -> nil (307.0)

ソケットを閉じます。

ソケットを閉じます。

SOCKSSocket.new(host, service) -> SOCKSSocket (307.0)

host で指定したホストの service で指定したポートと接続したソケッ トを返します。host はホスト名、またはインターネットアドレスを 示す文字列、service は /etc/services (または NIS) に登録されている サービス名かポート番号です。

host で指定したホストの service で指定したポートと接続したソケッ
トを返します。host はホスト名、またはインターネットアドレスを
示す文字列、service は /etc/services (または NIS) に登録されている
サービス名かポート番号です。

@param host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param service /etc/services (または NIS) に登録されているサービス名かポート番号です。

絞り込み条件を変える

<< 1 2 3 ... > >>