264件ヒット
[1-100件を表示]
(0.036秒)
クラス
- BasicSocket (72)
- IPSocket (36)
- Socket (60)
- TCPServer (24)
- UDPSocket (48)
- UNIXServer (24)
キーワード
-
accept
_ nonblock (36) - addr (12)
- connect (12)
-
connect
_ nonblock (12) - listen (24)
- peeraddr (12)
- recv (12)
-
recv
_ nonblock (12) - recvfrom (24)
-
recvfrom
_ nonblock (24) - send (48)
- setsockopt (24)
- shutdown (12)
検索結果
先頭5件
-
UDPSocket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Array] (33.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。
...ラグで、Socket::MSG_* の bitwise OR を渡します。
詳しくは recvfrom(2) を参照してください。
返り値はデータの文字列と送り元のアドレス情報の
2要素の配列となります。
recvfrom(2) がエラーになった場合、
Errno::EAGAIN, Errno::EINTR を......含め例外 Errno::EXXX が発生します。
Errno::EWOULDBLOCK、Errno::EAGAIN のような待ってからリトライすることが
可能であることを意味する例外には、IO::WaitReadable が extend
されています。
require 'socket'
s1 = UDPSocket.new
s1.bind("127.0.0.1"......, 0)
s2 = UDPSocket.new
s2.bind("127.0.0.1", 0)
s2.connect(*s1.addr.values_at(3,1))
s1.connect(*s2.addr.values_at(3,1))
s1.send "aaa", 0
begin # emulate blocking recvfrom
p s2.recvfrom_nonblock(10)
#=> ["aaa", ["AF_INET", 33302, "localhost.localdomain", "127.0.0.1"]]
rescue I... -
UNIXServer
# accept _ nonblock -> UnixSocket (33.0) -
ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。
...(2) を呼び出します。
接続した
UNIXSocket のインスタンスを返します。
accept(2) がエラーになった場合、Socket#accept と同じ例外が
発生します。
Errno::EWOULDBLOCK, Errno::EAGAIN,
Errno::ECONNABORTED, Errno::EPROTO のいずれかの例外が
発生し......を掴まえることができます。
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... -
Socket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Addrinfo] (27.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) を呼び出します。
...、
recvfrom(2) を呼び出します。
引数、返り値は Socket#recvfrom と同じです。
recvfrom(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
Errno::EWOULDBLOCK、Errno::EAGAIN のような待ってからリトライすることが......する例外には、IO::WaitReadable が extend
されています。
@param maxlen ソケットから受けとるデータの最大値
@param flags フラグ
@raise Errno::EXXX recvfrom(2) がエラーを報告した場合に発生します。詳しくは
man を参照してください... -
Socket
# connect _ nonblock(server _ sockaddr) -> 0 (21.0) -
ソケットをノンブロッキングモードに設定した後、 connect(2) を呼び出します。
...ングモードに設定した後、
connect(2) を呼び出します。
引数、返り値は Socket#connect と同じです。
connect が EINPROGRESS エラーを報告した場合、その例外(Errno::EINPROGRESS)
には IO::WaitWritable が Object#extend されます。
これを connect_non......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) がエラーを報告... -
TCPServer
# listen(backlog) -> 0 (21.0) -
listen(2) を実行します。 (Socket#listenと同じ)
...listen(2) を実行します。
(Socket#listenと同じ)
backlog は、クライアントからの接続要求を保留できる数です。
listen(2) が成功すれば 0 を返します。
失敗すれば 例外 Errno::EXXX が発生します。
@param backlog backlog は、クライアント......からの接続要求を保留できる数です。
@raise Errno::EXXX listen(2) が失敗すれば 例外 Errno::EXXX が発生します。
@return listen(2) が成功すれば 0 を返します。... -
BasicSocket
# recv _ nonblock(maxlen , flags = 0) -> String (15.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。
...Socket#recv と同じです。
recvfrom(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
@param maxlen 受け取る文字列の最大の長さを指定します。
@param flags recv(2) を参照してください。
@raise IOError
@raise Errno... -
BasicSocket
# send(mesg , flags , dest _ sockaddr = nil) -> Integer (15.0) -
ソケットを介してデータを送ります。flags に関しては send(2) を参照してください。connect していないソケット に対しては送り先である dest_sockaddr を指定する必要があります。実際に送っ たデータの長さを返します。
... Errno::EXXX が発生します。
@param mesg 送信するデータを文字列で指定します。
@param flags send(2) の flags を参照してください。
@param 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)... -
Socket
# recvfrom(maxlen , flags=0) -> [String , Addrinfo] (15.0) -
ソケットからデータを受け取ります。
...ソケットからデータを受け取ります。
Socket#recv と同様ですが、返り値として
データ文字列と相手ソケットのアドレスのペアが返されます。
flags には Socket::MSG_* という定数の bitwise OR を渡します。
詳しくは recvfrom(2) を参......se Errno::EXXX 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.s......nd("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"]... -
TCPServer
# accept _ nonblock -> TCPSocket (15.0) -
ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。
...に設定した後、
accept(2) を呼び出します。
返り値は TCPServer#accept と同じです。
accept(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
@raise Errno::EXXX accept(2) がエラーになった場合に発生します。...