るりまサーチ (Ruby 2.2.0)

最速Rubyリファレンスマニュアル検索!
72件ヒット [1-72件を表示] (0.020秒)

別のキーワード

  1. socket unix
  2. socket unix_server_socket
  3. socket af_unix
  4. socket pf_unix
  5. zlib os_unix

検索結果

Addrinfo.unix(path, socktype=Socket::SOCK_STREAM) -> Addrinfo (54412.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...

Socket.unix(path) -> Socket (54379.0)

Unix クライアントソケットを生成します。

...ロックの評価値となります。また、ブロックの終了後に
ソケットを IO#close します。

require 'socket'

# /tmp/sock と通信する
Socket
.unix("/tmp/sock") {|sock|
t = Thread.new { IO.copy_stream(sock, STDOUT) }
IO.copy_stream(STDIN, sock)
t.join
}...

Socket.unix(path) {|sock| ... } -> object (54379.0)

Unix クライアントソケットを生成します。

...ロックの評価値となります。また、ブロックの終了後に
ソケットを IO#close します。

require 'socket'

# /tmp/sock と通信する
Socket
.unix("/tmp/sock") {|sock|
t = Thread.new { IO.copy_stream(sock, STDOUT) }
IO.copy_stream(STDIN, sock)
t.join
}...

Socket::AncillaryData#unix_rights -> [IO] | nil (18556.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#unix? -> bool (18430.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 (18412.0)

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

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

require 'socket'

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

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

Socket::AncillaryData.unix_rights(*ios) -> Socket::AncillaryData (18412.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.unix_server_socket(path) -> Socket (18397.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 (18397.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_loop(path) {|socket, client_addrinfo| ... } -> () (18358.0)

Unix サーバソケットを生成し、 新しい接続を受け入れるごとにブロックを呼び出します。

...全です。
つまり、 /tmp/malicious-users-directory/socket という名前のパスは
使うべきではありません。
/tmp にスティッキービットが立っている場合、/tmp/socket
/tmp/your-private-directory/socket というパス名は安全と考えて良いでしょう...

絞り込み条件を変える

UNIXServer (18055.0)

UNIXストリーム型接続のサーバ側のソケットのクラス。

UNIXストリーム型接続のサーバ側のソケットのクラス。

UNIXSocket (18055.0)

UNIX ドメインのストリーム型ソケットのクラス。

UNIX ドメインのストリーム型ソケットのクラス。

通常の IO クラスのサブクラスと同様の入出力ができます。

UNIXSocket.pair(type=Socket::SOCK_STREAM, protocol=0) -> [UNIXSocket, UNIXSocket] (9673.0)

相互に結合された UNIX ソケットのペアを含む2要素の配列を返します。

...UNIX ソケットのペアを含む2要素の配列を返します。

type にはソケットタイプを指定します。
Socket
::SOCK_STREAM, Socket::SOCK_DGRAM, Socket::SOCK_RAW などの
整数、:STREAM, :DGRAM, :RAW などのシンボル、
"STREAM" などの文字列が渡せます。

pro...
...tocol には プロトコルを指定します。0 は Unix domain でのデフォルト値が
使われます。

require 'socket'

s1, s2 = UNIXSocket.pair
s1.send "a", 0
s1.send "b", 0
p s2.recv(10) #=> "ab"

@param type ソケットタイプ
@param protocol プトロコル...

UNIXSocket.socketpair(type=Socket::SOCK_STREAM, protocol=0) -> [UNIXSocket, UNIXSocket] (9673.0)

相互に結合された UNIX ソケットのペアを含む2要素の配列を返します。

...UNIX ソケットのペアを含む2要素の配列を返します。

type にはソケットタイプを指定します。
Socket
::SOCK_STREAM, Socket::SOCK_DGRAM, Socket::SOCK_RAW などの
整数、:STREAM, :DGRAM, :RAW などのシンボル、
"STREAM" などの文字列が渡せます。

pro...
...tocol には プロトコルを指定します。0 は Unix domain でのデフォルト値が
使われます。

require 'socket'

s1, s2 = UNIXSocket.pair
s1.send "a", 0
s1.send "b", 0
p s2.recv(10) #=> "ab"

@param type ソケットタイプ
@param protocol プトロコル...

Socket::AF_UNIX -> Integer (9379.0)

Unix domain socket。 Socket.open の第一引数 domain に使用します。

...Unix domain socket
Socket
.open の第一引数 domain に使用します。

@see sys/socket.h(header), unix(7linux)...

絞り込み条件を変える

Socket::Constants::AF_UNIX -> Integer (9379.0)

Unix domain socket。 Socket.open の第一引数 domain に使用します。

...Unix domain socket
Socket
.open の第一引数 domain に使用します。

@see sys/socket.h(header), unix(7linux)...

Socket::Constants::PF_UNIX -> Integer (9379.0)

Unix domain socket。 Socket.open の第一引数 domain に使用します。

...Unix domain socket
Socket
.open の第一引数 domain に使用します。

@see sys/socket.h(header), unix(7linux)...

Socket::PF_UNIX -> Integer (9379.0)

Unix domain socket。 Socket.open の第一引数 domain に使用します。

...Unix domain socket
Socket
.open の第一引数 domain に使用します。

@see sys/socket.h(header), unix(7linux)...

UNIXServer#accept -> UnixSocket (9307.0)

クライアントからの接続要求を accept(2)で待ち受け、接続した UNIXSocket のインスタンスを返します。

...ライアントからの接続要求を accept(2)で待ち受け、接続した
UNIXSocket のインスタンスを返します。

例:

require 'socket'

UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
s = serv.accept
s.write "from server"
c.write "from client"...

UNIXServer#accept_nonblock -> UnixSocket (9307.0)

ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。

...ブロッキングモードに設定した後、
accept(2) を呼び出します。

接続した
UNIXSocket のインスタンスを返します。

accept(2) がエラーになった場合、Socket#accept と同じ例外が
発生します。

Errno::EWOULDBLOCK, Errno::EAGAIN,
Errno::ECONNABORTE...
...を掴まえることができます。

require 'socket'
serv = UNIXServer.new("/tmp/sock")
begin # emulate blocking accept
sock = serv.accept_nonblock
rescue IO::WaitReadable, Errno::EINTR
IO.select([serv])
retry
end
# sock is an accepted socket.

@see UNIXServer#accept...

絞り込み条件を変える

UNIXServer.new(path) -> UNIXServer (9307.0)

path で指定したパス名を用いて接続を受け付けるソケット を作成します。

...クを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。

@param path 接続を受け付けるパス名文字列

require 'socket'

serv = UNIXServer.new("/tmp/sock")
s = serv.accept
p s.read...

UNIXServer.open(path) -> UNIXServer (9307.0)

path で指定したパス名を用いて接続を受け付けるソケット を作成します。

...クを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。

@param path 接続を受け付けるパス名文字列

require 'socket'

serv = UNIXServer.new("/tmp/sock")
s = serv.accept
p s.read...

UNIXSocket.new(path) -> UNIXSocket (9307.0)

path で指定したパス名を用いてソケットを接続します。

...してそのブロックを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。

@param path 接続先のパス名文字列

require 'socket'

s = UNIXSocket.new("/tmp/sock")
s.send("hello", 0)...

UNIXSocket.open(path) -> UNIXSocket (9307.0)

path で指定したパス名を用いてソケットを接続します。

...してそのブロックを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。

@param path 接続先のパス名文字列

require 'socket'

s = UNIXSocket.new("/tmp/sock")
s.send("hello", 0)...

UNIXSocket#addr -> [String, String] (9109.0)

ソケットの接続情報を表す配列を返します。配列の各要素は第1要 素が文字列 "AF_UNIX"、第2要素がパスを表す文字列です。

...す。
例:

require 'socket'

UNIXServer.open("/tmp/s") {|serv|
p serv.addr #=> ["AF_UNIX", "/tmp/s"]
}

UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
p c.peeraddr #=> ["AF_UNIX", "/tmp/s"]
p c.addr #=> ["AF_UNIX", ""]
}

@see UNIXSocket#peeraddr...

絞り込み条件を変える

UNIXSocket#peeraddr -> [String, String] (9091.0)

接続相手先ソケットの情報を表す配列を返します。配列の各要素は第1要 素が文字列 "AF_UNIX"、第2要素がパスを表す文字列です。

...各要素は第1要
素が文字列 "AF_UNIX"、第2要素がパスを表す文字列です。

例:

require 'socket'

UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
p c.peeraddr #=> ["AF_UNIX", "/tmp/s"]
p c.addr #=> ["AF_UNIX", ""]
}

@see UNIXSocket#addr...

UNIXSocket#path -> String (9055.0)

UNIX ソケットのパスを返します。

...UNIX ソケットのパスを返します。

クライアント側はパスを持たないため空文字列となります。

例:

require 'socket'

UNIXServer.open("/tmp/s") {|serv|
p serv.path #=> "/tmp/s"
}...

UNIXServer#listen(backlog) -> 0 (9007.0)

listen(2) を実行します。 (Socket#listenと同じ)

...listen(2) を実行します。
(Socket#listenと同じ)

backlog は、クライアントからの接続要求を保留できる数です。

listen(2) が成功すれば 0 を返します。
失敗すれば 例外 Errno::EXXX が発生します。

@param backlog バックログの最大数(接...

UNIXServer#sysaccept -> Integer (9007.0)

接続したクライアントのソケットをファイル記述子で返すことを除けば UNIXServer#accept と同じです。

...接続したクライアントのソケットをファイル記述子で返すことを除けば
UNIXServer#accept と同じです。

例:

require 'socket'

UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
p serv.sysaccept #=> 6
}...

UNIXServer.new(path) {|sock| ...} -> object (9007.0)

path で指定したパス名を用いて接続を受け付けるソケット を作成します。

...クを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。

@param path 接続を受け付けるパス名文字列

require 'socket'

serv = UNIXServer.new("/tmp/sock")
s = serv.accept
p s.read...

絞り込み条件を変える

UNIXServer.open(path) {|sock| ...} -> object (9007.0)

path で指定したパス名を用いて接続を受け付けるソケット を作成します。

...クを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。

@param path 接続を受け付けるパス名文字列

require 'socket'

serv = UNIXServer.new("/tmp/sock")
s = serv.accept
p s.read...

UNIXSocket#recv_io(klass=IO, mode=nil) -> Integer|IO|object (9007.0)

ソケットの接続先からファイルディスクリプタを受け取ります。

...ます。

klass が nil でない場合、
klass.for_fd(fd[, mode]) が呼ばれ、その値が返されます。

例:

require 'socket'

s1, s2 = UNIXSocket.pair
s1.send_io STDOUT
io = s2.recv_io
p File.identical?(io, STDOUT) #=> true

@param klass 受け取ったファイルディ...

UNIXSocket#recvfrom(maxlen, flags = 0) -> [String [String, String]] (9007.0)

recvfrom(2) を用いてソケットからメッセージを受け取ります。

...数で指定します。

flags には Socket::MSG_* という名前の定数の bitwise OR を渡します。

戻り値は文字列と相手ソケットのパスのペアです。

例:

require 'socket'

UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
s = serv.accept...

UNIXSocket#send_io(io) -> nil (9007.0)

引数 io に対応するファイルディスクリプタをソケットの接続先に送ります。

...引数 io に対応するファイルディスクリプタをソケットの接続先に送ります。

require 'socket'

s1, s2 = UNIXSocket.pair

s1.send_io STDOUT
stdout = s2.recv_io

p STDOUT.fileno #=> 1
p stdout.fileno #=> 6

stdout.puts "hello" # outputs "hello\n" to stan...

UNIXSocket.new(path) {|sock| ...} -> object (9007.0)

path で指定したパス名を用いてソケットを接続します。

...してそのブロックを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。

@param path 接続先のパス名文字列

require 'socket'

s = UNIXSocket.new("/tmp/sock")
s.send("hello", 0)...

絞り込み条件を変える

UNIXSocket.open(path) {|sock| ...} -> object (9007.0)

path で指定したパス名を用いてソケットを接続します。

...してそのブロックを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。

@param path 接続先のパス名文字列

require 'socket'

s = UNIXSocket.new("/tmp/sock")
s.send("hello", 0)...

Socket (97.0)

汎用ソケットクラス。

...して
Socket
.new がありますが、以下のようなより便利な
メソッドがあります。
* TCP のクライアントソケット Socket.tcp TCPSocket.open
* TCP のサーバソケット Socket.tcp_server_loop,
Socket
.tcp_server_sockets, TCPServer.open
* UNIX socket のクラ...
...イアントソケット Socket.unix UNIXSocket.open
* UNIX socket のサーバソケット Socket.unix_server_loop,
Socket
.unix_server_socket, UNIXServer.open
また、クライアントソケットは Addrinfo#connect で、
サーバソケットを Addrinfo#bind や Addrinfo#listen で
...

Socket::AncillaryData.new(family, cmsg_level, cmsg_type, cmsg_data) -> Socket::AncillaryData (97.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 は補助データの...
...異なります。
整数、文字列、シンボルを渡します。
* Socket::SCM_RIGHTS, "SCM_RIGHTS", "RIGHTS", :SCM_RIGHTS, :RIGHTS for SOL_SOCKET
* Socket::IP_RECVTTL, "RECVTTL" and :RECVTTL for IPPROTO_IP
* Socket::IPV6_PKTINFO, "PKTINFO" and :PKTINFO for IPPROTO_IPV6
* など

cmsg_data...

BasicSocket#getpeereid -> [Integer, Integer] (91.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....

Socket::AF_LOCAL -> Integer (79.0)

Unix domain socket。 Socket.open の第一引数 domain に使用します。

...Unix domain socket
Socket
.open の第一引数 domain に使用します。

@see sys/socket.h(header), unix(7linux)...

絞り込み条件を変える

Socket::Constants::AF_LOCAL -> Integer (79.0)

Unix domain socket。 Socket.open の第一引数 domain に使用します。

...Unix domain socket
Socket
.open の第一引数 domain に使用します。

@see sys/socket.h(header), unix(7linux)...

Socket::Constants::PF_LOCAL -> Integer (79.0)

Unix domain socket。 Socket.open の第一引数 domain に使用します。

...Unix domain socket
Socket
.open の第一引数 domain に使用します。

@see sys/socket.h(header), unix(7linux)...

Socket::PF_LOCAL -> Integer (79.0)

Unix domain socket。 Socket.open の第一引数 domain に使用します。

...Unix domain socket
Socket
.open の第一引数 domain に使用します。

@see sys/socket.h(header), unix(7linux)...

Socket::Constants::SCM_RIGHTS -> Integer (61.0)

Access rights.

...Access rights.

Socket
::AncillaryData の type として利用します。

@see Socket::AncillaryData, Socket::AncillaryData#unix_rights
BasicSocket#sendmsg, BasicSocket#recvmsg,
unix(7linux), unix(4freebsd),
sys/socket.h(header)...

Socket::SCM_RIGHTS -> Integer (61.0)

Access rights.

...Access rights.

Socket
::AncillaryData の type として利用します。

@see Socket::AncillaryData, Socket::AncillaryData#unix_rights
BasicSocket#sendmsg, BasicSocket#recvmsg,
unix(7linux), unix(4freebsd),
sys/socket.h(header)...

絞り込み条件を変える

Addrinfo#family_addrinfo(host, port) -> Addrinfo (43.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 (43.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#ip? -> bool (43.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.new(sockaddr, family=Socket::PF_UNSPEC, socktype=0, protocol=0) -> Addrinfo (43.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...

BasicSocket#recvmsg(maxmesglen=nil, flags=0, maxcontrollen=nil, opts={}) -> [String, Addrinfo, Integer, *Socket::AncillaryData] (43.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 の場合には送り元の...

絞り込み条件を変える

Socket.pack_sockaddr_un(path) -> String (43.0)

指定したアドレスをlib:socket#pack_string で返します。

...指定したアドレスをlib:socket#pack_string
で返します。

@param path パスを文字列で指定します。

例:

require 'socket'
p Socket.sockaddr_un("/tmp/.X11-unix/X0")
=> "\001\000/tmp/.X11-unix/X0\000...."...

Socket.sockaddr_un(path) -> String (43.0)

指定したアドレスをlib:socket#pack_string で返します。

...指定したアドレスをlib:socket#pack_string
で返します。

@param path パスを文字列で指定します。

例:

require 'socket'
p Socket.sockaddr_un("/tmp/.X11-unix/X0")
=> "\001\000/tmp/.X11-unix/X0\000...."...

Socket.unpack_sockaddr_un(sockaddr) -> String (43.0)

lib:socket#pack_stringを unpack したソケットパス名を返します。

...lib:socket#pack_stringを
unpack したソケットパス名を返します。

@param sockaddr ソケットアドレス構造体を pack した文字列lib:socket#pack_stringを指定します。

例:

require 'socket'
p Socket.unpack_sockaddr_un(Socket.sockaddr_un("/tmp/.X11-unix/X0"))
=>...

Socket::AncillaryData.int(family, cmsg_level, cmsg_type, integer) -> Socket::AncillaryData (43.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...

Addrinfo (25.0)

ソケットのアドレス情報を保持するクラスです。

...ソケットのアドレス情報を保持するクラスです。

ホスト/ポート番号/プロトコルなどを同定するために用いられます。
IPv4/IPv6/Unix domain socketなどのアドレス情報を保持することができます。

struct addrinfo に対応します。...

絞り込み条件を変える

Addrinfo#inspect_sockaddr -> String (25.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#ipv4? -> bool (25.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#ipv6? -> bool (25.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_to_ipv4 -> Addrinfo|nil (25.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...

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_* という定数の...

絞り込み条件を変える

Socket.accept_loop(sockets) {|sock, client_addrinfo| ...} -> () (25.0)

sockets でサーバソケットを受け取り、接続を待ち受け、 クライアントとの接続が確立するたびにブロックにその接続 ソケットを渡し呼び出します。

...sockets でサーバソケットを受け取り、接続を待ち受け、
クライアントとの接続が確立するたびにブロックにその接続
ソケットを渡し呼び出します。

ブロックの引数はクライアントと接続したソケットオブジェクトと
Addrinfo...
...

Socket
.tcp_server_loop と同様、ブロックは
逐次的に呼び出されます。つまりブロックか終了するまで
次の接続は accept されません。
並列に通信したい場合は
スレッドのような並列実行機構を使う必要があります。

@param sockets...
...待ち受けたいサーバソケットの配列

@see Socket.tcp_server_loop, Socket.unix_server_loop...

Socket.new(domain, type, protocol=0) -> Socket (25.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 (25.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::AncillaryData#int -> Integer (25.0)

自身が保持している cmsg data (データ) を整数の形で返します。

...異なります。

require 'socket'

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

@raise TypeError cmgs data のサイズが int のバイト数と異なる場合に発生します
@see Socket::AncillaryData.new Socket::AncillaryData.int...

Socket::Constants::SCM_CREDENTIALS -> Integer (25.0)

The sender's credentials

...The sender's credentials

Socket
::AncillaryData の type として利用します。

@see Socket::AncillaryData,
BasicSocket#sendmsg, BasicSocket#recvmsg,
unix(7linux)...

絞り込み条件を変える

Socket::Constants::SCM_CREDS -> Integer (25.0)

Process credentials

...Process credentials

Socket
::AncillaryData の type として利用します。

@see Socket::AncillaryData,
BasicSocket#sendmsg, BasicSocket#recvmsg,
unix(4freebsd)...

Socket::Constants::SO_PASSCRED -> Integer (25.0)

Receive SCM_CREDENTIALS messages。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

...Receive SCM_CREDENTIALS messages。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。

@see socket(7linux), unix(7linux),
Socket
::Constants::SOL_SOCKET...

Socket::Constants::SO_PEERCRED -> Integer (25.0)

The credentials of the foreign process connected to this socket。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

...The credentials of the foreign process connected to this socket
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。

@see socket(7linux), unix(7linux), socketpair(2linux),
Socket
::Constants::SOL_SOCKET...

Socket::SCM_CREDENTIALS -> Integer (25.0)

The sender's credentials

...The sender's credentials

Socket
::AncillaryData の type として利用します。

@see Socket::AncillaryData,
BasicSocket#sendmsg, BasicSocket#recvmsg,
unix(7linux)...

Socket::SCM_CREDS -> Integer (25.0)

Process credentials

...Process credentials

Socket
::AncillaryData の type として利用します。

@see Socket::AncillaryData,
BasicSocket#sendmsg, BasicSocket#recvmsg,
unix(4freebsd)...

絞り込み条件を変える

Socket::SO_PASSCRED -> Integer (25.0)

Receive SCM_CREDENTIALS messages。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

...Receive SCM_CREDENTIALS messages。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。

@see socket(7linux), unix(7linux),
Socket
::Constants::SOL_SOCKET...

Socket::SO_PEERCRED -> Integer (25.0)

The credentials of the foreign process connected to this socket。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

...The credentials of the foreign process connected to this socket
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。

@see socket(7linux), unix(7linux), socketpair(2linux),
Socket
::Constants::SOL_SOCKET...