種類
- インスタンスメソッド (168)
- 特異メソッド (24)
キーワード
-
connect
_ address (12) -
do
_ not _ reverse _ lookup (12) -
do
_ not _ reverse _ lookup= (12) -
for
_ fd (12) - getpeereid (12)
- getpeername (12)
- getsockname (12)
- getsockopt (12)
-
local
_ address (12) - recv (12)
- recvmsg (12)
-
remote
_ address (12) - send (12)
- sendmsg (12)
- setsockopt (24)
検索結果
先頭5件
- BasicSocket
# setsockopt(socketoption) -> 0 - BasicSocket
. do _ not _ reverse _ lookup=(bool) - BasicSocket
# recvmsg(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] - BasicSocket
# recv(maxlen , flags = 0) -> String - BasicSocket
# send(mesg , flags , dest _ sockaddr = nil) -> Integer
-
BasicSocket
# setsockopt(socketoption) -> 0 (6109.0) -
ソケットのオプションを設定します。setsockopt(2) を参照してください。
...ます。setsockopt(2)
を参照してください。
level, optname には Socket::SOL_SOCKET や Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いることができます。
optval には文......には setsockopt(2) にはその文字列と
長さが渡されます。整数の場合はintへのポインタが渡されます。
true/falseの場合は0/1という整数と解釈され、そのメモリ領域の
intポインタを渡します。
引数が1つの場合は 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, :REUSEADDR, true))
# 整数... -
BasicSocket
. do _ not _ reverse _ lookup=(bool) (6109.0) -
BasicSocket#do_not_reverse_lookup の値を変更します。
...
BasicSocket#do_not_reverse_lookup の値を変更します。
@param bool この値が真ならアドレスからホスト名への逆引きを行わなくなります。
例:
require 'socket'
p TCPSocket.new('localhost', 'telnet').addr
TCPSocket.do_not_reverse_lookup = true
p TCPSock......et.new('localhost', 'telnet').addr
=> ["AF_INET", 2253, "localhost", "127.0.0.1"]
["AF_INET", 2254, "127.0.0.1", "127.0.0.1"]... -
BasicSocket
# recvmsg(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] (3209.0) -
recvmsg(2) を用いてメッセージを受け取ります。
...クします。ノンブロッキング方式で通信したい
場合は BasicSocket#recvmsg_nonblock を用います。
maxmesglen, maxcontrollen で受け取るメッセージおよび補助データ
(Socket::AncillaryData)の最大長をバイト単位で指定します。
省略した場合は......では Socket::MSG_* という名前の定数の biwsise OR を取った
ものを渡します。
opts にはその他のオプションを渡します。今のところ :scm_right => bool
というオプションのみ利用できます。このオプションに
真を渡すと、 SCM_RIGHTS 制......します。詳しくは Socket::AncillaryData#unix_rights
を参照してください。
返り値は配列で得られます。
返り値の配列の最初の要素は受け取ったメッセージを表す文字列です。
2番目の要素は connection-less socket の場合には送り元の... -
BasicSocket
# recv(maxlen , flags = 0) -> String (3109.0) -
ソケットからデータを受け取り、文字列として返します。 maxlen は受け取る最大の長さを指定します。 flags については recv(2) を参照してください。flags の デフォルト値は 0 です。flags の指定に必要な定数は Socket クラスで定義されています。(例: Socket::MSG_PEEK)
...指定に必要な定数は
Socket クラスで定義されています。(例: Socket::MSG_PEEK)
内部で呼び出す recv(2) が 0 を返した場合、このメソッドは "" を返します。
この意味はソケットによって異なります。
たとえば TCP では EOF を意味し......OError
@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
# send(mesg , flags , dest _ sockaddr = nil) -> Integer (3109.0) -
ソケットを介してデータを送ります。flags に関しては send(2) を参照してください。connect していないソケット に対しては送り先である dest_sockaddr を指定する必要があります。実際に送っ たデータの長さを返します。
...send(2) を参照してください。connect していないソケット
に対しては送り先である dest_sockaddr を指定する必要があります。実際に送っ
たデータの長さを返します。
dest_sockaddr にはlib:socket#pack_string
を指定します。
データの送......ださい。
@param dest_sockaddr lib:socket#pack_stringを指定します。
@raise Errno::EXXX データの送信に失敗した場合に発生します。
例:
require 'socket'
s = UDPSocket.new
sockaddr = Socket.sockaddr_in("discard", "localhost")
s.send("The king has donkey ears!"... -
BasicSocket
# sendmsg(mesg , flags=0 , dest _ sockaddr=nil , *controls) -> Integer (3109.0) -
sendmsg(2) を用いてメッセージを送ります。
...は BasicSocket#sendmsg_nonblock を用います。
ソケットが connection-less の場合は dest_sockaddr で
通信先のアドレスを指定しなければなりません。Socket.sockaddr_in
の返り値や Addrinfo オブジェクトを引数として渡すことができます。
contro......data)を渡します。
Socket::AncillaryData のインスタンスや
3要素(cmsg_level, cmsg_type, cmsg_data) の配列を用いることができます。
送ったバイト数を返します。
# UnixSocket#send_io の実装例
# use Socket::AncillaryData.
require 'socket'
ancdata =......Socket::AncillaryData.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
. for _ fd(fd) -> BasicSocket (3109.0) -
ファイルディスクリプタ fd に対する新しいソケットを生成します。
...かによって決まります。
require 'socket'
BasicSocket.for_fd(fd) # BasicSocket のインスタンスを返す
TCPSocket.for_fd(fd) # TCPSocket のインスタンスを返す
@param fd ファイルディスクリプタ を指定します。
@return 任意のソケットであ... -
BasicSocket
# local _ address -> Addrinfo (3009.0) -
getsockname(2) で得られたローカルアドレス情報を Addrinfo オブジェクトとして返します。
...getsockname(2) で得られたローカルアドレス情報を
Addrinfo オブジェクトとして返します。
返されたオブジェクトの Addrinfo#protocol は 0 を
返すことに注意してください。
require 'socket'
TCPSocket.open("www.ruby-lang.org", 80) {|s|
p s.lo......cal_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...