別のキーワード
種類
- 特異メソッド (55)
- インスタンスメソッド (55)
- 文書 (11)
ライブラリ
- socket (110)
クラス
- Addrinfo (11)
- BasicSocket (22)
- Socket (77)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) - connect (11)
-
connect
_ nonblock (11) - getifaddrs (11)
- new (11)
-
pack
_ sockaddr _ in (11) - recvfrom (11)
- send (11)
- sendmsg (11)
-
unpack
_ sockaddr _ in (11)
検索結果
先頭5件
-
Socket
. sockaddr _ in(port , host) -> String (24314.0) -
指定したアドレスをlib:socket#pack_string で返します。port は、ポート番号を表す Fixnum あるいは、ポート 番号、サービス名を表す文字列です。
...@return 指定したアドレスを返します。
例:
require 'socket'
p Socket.sockaddr_in("echo", "localhost")
=> "\002\000\000\a\177\000\000\001\000\000\000\000\000\000\000\000"
p Socket.sockaddr_in("echo", "::1")
=> "\n\000\000\a\000\000\000\000\000\000\000\000\000\000\000\000\000\... -
Socket
. unpack _ sockaddr _ in(sockaddr) -> Array (12425.0) -
lib:socket#pack_stringを unpack したアドレスを返します。返される値は [port, ipaddr] の配列です。
...t, ipaddr]
の配列です。
@param sockaddr ソケットアドレス構造体を pack した文字列lib:socket#pack_stringを指定します。
例:
require 'socket'
p Socket.unpack_sockaddr_in(Socket.sockaddr_in("echo", "localhost"))
=> [7, "127.0.0.1"]
p Socket.unpack_sockaddr_in(Soc......ket.sockaddr_in("echo", "::1"))
=> [7, "::1"]... -
Socket
. pack _ sockaddr _ in(port , host) -> String (12314.0) -
指定したアドレスをlib:socket#pack_string で返します。port は、ポート番号を表す Fixnum あるいは、ポート 番号、サービス名を表す文字列です。
...@return 指定したアドレスを返します。
例:
require 'socket'
p Socket.sockaddr_in("echo", "localhost")
=> "\002\000\000\a\177\000\000\001\000\000\000\000\000\000\000\000"
p Socket.sockaddr_in("echo", "::1")
=> "\n\000\000\a\000\000\000\000\000\000\000\000\000\000\000\000\000\... -
Socket
. getifaddrs -> [Socket :: Ifaddr] (6312.0) -
インターフェイスのアドレスを Socket::Ifaddr の配列で返します。
...レスを Socket::Ifaddr の配列で返します。
本メソッドはマルチキャスト通信が可能なインターフェイスを見つけるために使う事ができます。
require 'socket'
pp Socket.getifaddrs.reject {|ifaddr|
!ifaddr.addr.ip? || (ifaddr.flags & Socket::IFF_......ULTICAST == 0)
}.map {|ifaddr| [ifaddr.name, ifaddr.ifindex, ifaddr.addr] }
#=> [["eth0", 2, #<Addrinfo: 221.186.184.67>],
# ["eth0", 2, #<Addrinfo: fe80::216:3eff:fe95:88bb%eth0>]]
例(GNU/Linux):
require 'socket'
pp Socket.getifaddrs
#=> [#<Socket::Ifaddr lo UP,LOOPBACK,RUNNING,0......0 lo hatype=772 HOST hwaddr=00:00:00:00:00:00]>,
# #<Socket::Ifaddr eth0 UP,BROADCAST,RUNNING,MULTICAST,0x10000 PACKET[protocol=0 eth0 hatype=1 HOST hwaddr=00:16:3e:95:88:bb] broadcast=PACKET[protocol=0 eth0 hatype=1 HOST hwaddr=ff:ff:ff:ff:ff:ff]>,
# #<Socket::Ifaddr sit0 NOARP PACKET[pro... -
Addrinfo
. new(sockaddr , family=Socket :: PF _ UNSPEC , socktype=0 , protocol=0) -> Addrinfo (3336.0) -
新たな Addrinfo オブジェクトを返します。
...新たな Addrinfo オブジェクトを返します。
sockaddr は connect(2) などで使われるパラメータで、
struct sockaddr に対応します。faimily, socktype, protocol
は socket(2) のパラメータに対応します。
sockaddr には文字列もしくは配列を指定し......。
配列の場合は IPSocket#addr や UNIXSocket#addr の
値と互換でなければなりません。
文字列の場合は Socket.sockaddr_in や
Socket.unpack_sockaddr_un で得られるようなものでなければ
なりません。
実際には sockaddr には以下のようなものが......main", "127.0.0.1"]
* ["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... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (2574.0) -
1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))
...作はなくなりました)
$defout や $deferr に代入を行うと警告がでます。
(注:1.6 に $deferr はありません)
((<ruby-dev:20961>))
$stdin にオブジェクトを代入すると標準入力からの入力メソッド(gets 等)
はそのオブジェクトにメソ......ました。
# # derived from sample/test.rb
# a = *[]; p a # special case
# def f; yield; end; f {|a| p a} # add (warning)
# def r; return; end; a = r(); p a
# a = nil; p a
# def f; yield nil; end; f {|a| p a}
# def r; return nil; end; a = r(); p a......et
: ((<Socket/Socket.pack_sockaddr_in>)) [new]
: ((<Socket/Socket.unpack_sockaddr_in>)) [new]
追加。ソケットアドレス構造体(INET domain)のpack/unpack。
: ((<Socket/Socket.pack_sockaddr_un>)) [new]
: ((<Socket/Socket.unpack_sockaddr_un>)) [new]
追加... -
BasicSocket
# sendmsg(mesg , flags=0 , dest _ sockaddr=nil , *controls) -> Integer (218.0) -
sendmsg(2) を用いてメッセージを送ります。
...は BasicSocket#sendmsg_nonblock を用います。
ソケットが connection-less の場合は dest_sockaddr で
通信先のアドレスを指定しなければなりません。Socket.sockaddr_in
の返り値や Addrinfo オブジェクトを引数として渡すことができます。
contro......, ancdata)
# use 3-element array.
ancdata = [:SOCKET, :RIGHTS, [io.fileno].pack("i!")]
sock.sendmsg("\0", 0, nil, ancdata)
@param mesg メッセージ文字列
@param flags フラグ(Socket::MSG_* という定数の bitwise OR を取ったもの)
@param dest_sockaddr 通信先のアドレ... -
Socket
# connect(server _ sockaddr) -> 0 (218.0) -
connect(2) でソケットを接続します。
...connect(2) でソケットを接続します。
server_sockaddr は、
lib:socket#pack_string
もしくは Addrinfo オブジェクト
です。
0 を返します。
@param server_sockaddr 接続先アドレス
@raise Errno::EXXX connect(2) がエラーを報告した場合に発生します。......を生成し、connect で www.ruby-lang.org:80 に接続するには以下のようにします。
例:
require 'socket'
s = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
sockaddr = Socket.sockaddr_in(80, "www.ruby-lang.org")
s.connect(sockaddr)
s.write "GET / HTTP/1.0\r\n\r\n"... -
Socket
# connect _ nonblock(server _ sockaddr) -> 0 (212.0) -
ソケットをノンブロッキングモードに設定した後、 connect(2) を呼び出します。
...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 handshake 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) がエラーを報告した場合に発生します。詳しくは
man を参照してください。... -
Socket
# recvfrom(maxlen , flags=0) -> [String , Addrinfo] (212.0) -
ソケットからデータを受け取ります。
...ket.sockaddr_in(0, "0.0.0.0"))
s2.send("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(so...