別のキーワード
クラス
- Addrinfo (204)
- BasicSocket (132)
- IPSocket (12)
- Socket (36)
-
Socket
:: AncillaryData (120) -
Socket
:: Ifaddr (56) -
Socket
:: Option (84) -
Socket
:: UDPSource (12) - TCPServer (24)
- UDPSocket (48)
- UNIXServer (24)
- UNIXSocket (60)
キーワード
- addr (12)
- afamily (12)
- canonname (12)
-
cmsg
_ is? (12) - data (24)
- family (24)
- flags (12)
- getnameinfo (12)
- getpeereid (12)
- getpeername (12)
- getsockname (12)
- getsockopt (12)
- ifindex (12)
- inspect (12)
-
inspect
_ sockaddr (12) - int (24)
-
ip
_ address (12) -
ip
_ pktinfo (12) -
ip
_ port (12) -
ip
_ unpack (12) -
ipv6
_ mc _ global? (12) -
ipv6
_ mc _ orglocal? (12) -
ipv6
_ pktinfo (12) -
ipv6
_ pktinfo _ ifindex (12) - level (24)
- linger (12)
- listen (60)
- name (12)
- optname (12)
- path (12)
- peeraddr (12)
- pfamily (12)
- protocol (12)
- recv (12)
-
recv
_ io (12) -
recv
_ nonblock (12) - recvfrom (36)
-
recvfrom
_ nonblock (24) - recvmsg (12)
-
recvmsg
_ nonblock (12) - reply (12)
- send (48)
- sendmsg (12)
-
sendmsg
_ nonblock (12) - socktype (12)
- sysaccept (24)
-
to
_ s (24) -
to
_ sockaddr (12) - type (12)
-
unix
_ path (12) -
unix
_ rights (12) - vhid (8)
検索結果
先頭5件
-
BasicSocket
# getpeereid -> [Integer , Integer] (6303.0) -
Unix ドメインソケットにおいて接続相手の euid と egid を 返します。
...id と egid を
返します。
配列の最初の要素が euid, 2番目の要素が egid です。
ソケットが Unix ドメインソケットでない場合の返り値は
不定です。
require 'socket'
Socket.unix_server_loop("/tmp/sock") {|s|
begin
euid, egid = s.getpeerei......d
# Check the connected client is myself or not.
next if euid != Process.uid
# do something about my resource.
ensure
s.close
end
}... -
Socket
:: Option # linger -> [bool , Integer] (6203.0) -
オプションが SOL_SOCKET/SO_LINGER である場合に、 オプションのデータ(内容)を真偽値と整数のペアとして返します。
...SOL_SOCKET/SO_LINGER である場合に、
オプションのデータ(内容)を真偽値と整数のペアとして返します。
@raise TypeError dataのバイト数が不適切である(sizeof(struct linger)と異なる)場合や、
level/optname が SOL_SOCKET/SO_LINGER で......ないに発生します
@see Socket::Option#data... -
Addrinfo
# getnameinfo(flags=0) -> [String , String] (6103.0) -
ノード名とサービスを文字列の配列で返します。
...。
flags には 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 SocketError getnameinfo(3) がエラーを起こした場合に生じる例外
@see Socket.getnameinfo... -
Addrinfo
# ipv6 _ mc _ global? -> bool (6103.0) -
IPv6 のマルチキャスト(グローバルスコープ) アドレスであれば真を返します。
IPv6 のマルチキャスト(グローバルスコープ)
アドレスであれば真を返します。 -
Addrinfo
# ipv6 _ mc _ orglocal? -> bool (6103.0) -
IPv6 のマルチキャスト(組織(organization)ローカルスコープ) アドレスであれば真を返します。
...IPv6 のマルチキャスト(組織(organization)ローカルスコープ)
アドレスであれば真を返します。... -
BasicSocket
# getpeername -> String (6103.0) -
接続の相手先のソケットの情報を取得します。sockaddr 構造体をパッ クした文字列を返します。getpeername(2) を参照してください。
...をパッ
クした文字列を返します。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\21......4\177\000\000\001\000\000\000\000\000\000\000\000"
p Socket.unpack_sockaddr_in(addr) #=> [46988, "127.0.0.1"]
p addr == s.getsockname #=> true... -
BasicSocket
# getsockname -> String (6103.0) -
ソケットの情報を取得します。sockaddr 構造体をパックした 文字列を返します。getsockname(2) を参照してください。
...。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.getsockname).reverse)
s = serv.accept... -
BasicSocket
# getsockopt(level , optname) -> Socket :: Option (6103.0) -
ソケットのオプションを取得します。getsockopt(2) を参照してください。 取得したオプションのデータを Socket::Option で返します。
...得します。getsockopt(2)
を参照してください。
取得したオプションのデータを Socket::Option で返します。
level, optname には Socket::SOL_SOCKET や Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル......am level getsockopt(2) の 第二引数のlevel
@param optname getsockopt(2) の 第三引数のoption_name
@see BasicSocket#setsockopt
例:
require 'socket'
serv = Socket.tcp_server_sockets("", 0)[0]
c = serv.local_address.connect
s = serv.accept
opt = c.getsockopt(Socket::IPPROT......DELAY)
# c.getsockopt("TCP", "NODELAY"), なども可能
p opt #=> #<Socket::Option: INET TCP NODELAY 0>
p opt.bool #=> false (Nagle アルゴリズム有効)
p opt.unpack("i")[0] #=> 0 (Socket::Option#unpack が互換性のために存在する)
# 整数値の場合は Socket::Option#int... -
BasicSocket
# recvmsg(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] (6103.0) -
recvmsg(2) を用いてメッセージを受け取ります。
...sg(2) を用いてメッセージを受け取ります。
このメソッドはブロックします。ノンブロッキング方式で通信したい
場合は BasicSocket#recvmsg_nonblock を用います。
maxmesglen, maxcontrollen で受け取るメッセージおよび補助データ
(Socket......flags では Socket::MSG_* という名前の定数の biwsise OR を取った
ものを渡します。
opts にはその他のオプションを渡します。今のところ :scm_right => bool
というオプションのみ利用できます。このオプションに
真を渡すと、 SCM_RIGHT......します。詳しくは Socket::AncillaryData#unix_rights
を参照してください。
返り値は配列で得られます。
返り値の配列の最初の要素は受け取ったメッセージを表す文字列です。
2番目の要素は connection-less socket の場合には送り元の...