別のキーワード
種類
- インスタンスメソッド (118)
- 特異メソッド (77)
- 文書 (22)
- ライブラリ (11)
クラス
- Addrinfo (11)
- Array (19)
- BasicSocket (44)
- Socket (110)
- String (11)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) - accept (11)
- connect (11)
-
connect
_ nonblock (11) - gethostbyname (11)
- getifaddrs (11)
- getnameinfo (11)
- getpeername (11)
- getsockname (11)
- new (11)
- pack (19)
- pack テンプレート文字列 (11)
-
pack
_ sockaddr _ in (11) - recvfrom (11)
- send (11)
- sendmsg (11)
- unpack (11)
-
unpack
_ sockaddr _ in (11)
検索結果
先頭5件
-
socket (38094.0)
-
socket はプロセス外部との通信 (プロセス間通信、ホスト間通信) を実現します。
...socket はプロセス外部との通信 (プロセス間通信、ホスト間通信) を実現します。
=== ソケットアドレス
ソケットというのは通信路の末端です。
たとえば 1対1 の通信では、まず通信路の両端にひとつずつソケットをつくり......ります。
IPSocket および UNIXSocket 以下のクラス階層では、
わざわざソケットアドレスという形式にまとめなくてもよいよう、
ソケットアドレスの中身を直接扱えるメソッドが用意されています。
また、IPSocket 以下での IP......とは、C 言語の構造体 struct sockaddr_in (IPv4)
や struct sockaddr_un (Unix ドメイン)を指します。
Socket クラスなどソケットの低レベルインタフェースで利用されます。
Socket.pack_sockaddr_in,
Socket.unpack_sockaddr_in といったメソッドにより、... -
Socket
. sockaddr _ in(port , host) -> String (35148.0) -
指定したアドレスをlib:socket#pack_string で返します。port は、ポート番号を表す Fixnum あるいは、ポート 番号、サービス名を表す文字列です。
...指定したアドレスをlib:socket#pack_string
で返します。port は、ポート番号を表す Fixnum あるいは、ポート
番号、サービス名を表す文字列です。
@param 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\... -
Socket
. unpack _ sockaddr _ in(sockaddr) -> Array (23177.0) -
lib:socket#pack_stringを unpack したアドレスを返します。返される値は [port, ipaddr] の配列です。
...:socket#pack_stringを
unpack したアドレスを返します。返される値は [port, 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(Socket.sockaddr_in("echo", "::1"))
=> [7, "::1"]... -
Socket
. pack _ sockaddr _ in(port , host) -> String (23148.0) -
指定したアドレスをlib:socket#pack_string で返します。port は、ポート番号を表す Fixnum あるいは、ポート 番号、サービス名を表す文字列です。
...指定したアドレスをlib:socket#pack_string
で返します。port は、ポート番号を表す Fixnum あるいは、ポート
番号、サービス名を表す文字列です。
@param 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\... -
Socket
. getifaddrs -> [Socket :: Ifaddr] (17273.0) -
インターフェイスのアドレスを Socket::Ifaddr の配列で返します。
...スを Socket::Ifaddr の配列で返します。
本メソッドはマルチキャスト通信が可能なインターフェイスを見つけるために使う事ができます。
require 'socket'
pp Socket.getifaddrs.reject {|ifaddr|
!ifaddr.addr.ip? || (ifaddr.flags & Socket::IFF_MUL......nfo: fe80::216:3eff:fe95:88bb%eth0>]]
例(GNU/Linux):
require 'socket'
pp Socket.getifaddrs
#=> [#<Socket::Ifaddr lo UP,LOOPBACK,RUNNING,0x10000 PACKET[protocol=0 lo hatype=772 HOST hwaddr=00:00:00:00:00:00]>,
# #<Socket::Ifaddr eth0 UP,BROADCAST,RUNNING,MULTICAST,0x10000 PACKET[protoc......rs
#=> [#<Socket::Ifaddr usbus0 UP,0x10000 LINK[usbus0]>,
# #<Socket::Ifaddr re0 UP,BROADCAST,RUNNING,MULTICAST,0x800 LINK[re0 3a:d0:40:9a:fe:e8]>,
# #<Socket::Ifaddr re0 UP,BROADCAST,RUNNING,MULTICAST,0x800 10.250.10.18 netmask=255.255.255.? (7 bytes for 16 bytes sockaddr_in) broadcast=... -
Socket
. getnameinfo(sa , flags = 0) -> Array (17096.0) -
2553 で定義された getnameinfo() の機能を提供するク ラスメソッド。 gethostbyaddr() や getservbyport() の代 わりとして用意されています。IPのバージョンに依存しないプログラムを 書くための標準的なAPIです。
...ise SocketError getnameinfo(3) がエラーを起こした場合に生じる例外
@see Addrinfo#getnameinfo
=== 引数 sa について
引数 sa には文字列か配列を与えます。文字列の場合は sockaddr 構造体
のパック文字列を与えます。具体的には BasicSocket#ge......素が4つの場合:
[アドレスファミリー, サービス, 任意, アドレスを表す文字列]
アドレスファミリーには Socket::AF_INET 等の定数の他に文字列
で "AF_INET" もしくは "AF_INET6" もしくは nil が
指定できます。ただしIPv6が使えな......ERICHOST、
Socket::NI_NAMEREQD、
Socket::NI_NUMERICSERV、
Socket::NI_DGRAM
が用意されている場合があります。
これらの定数の意味については getnameinfo(3)を参照
して下さい。
=== 使用例
require 'socket'
Socket.getnameinfo(Socket.sockaddr_in('21','127.... -
Socket
# recvfrom(maxlen , flags=0) -> [String , Addrinfo] (17078.0) -
ソケットからデータを受け取ります。
...ソケットからデータを受け取ります。
Socket#recv と同様ですが、返り値として
データ文字列と相手ソケットのアドレスのペアが返されます。
flags には Socket::MSG_* という定数の bitwise OR を渡します。
詳しくは 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.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(sockaddr) #=> [32882, "127.0.0.1"]... -
Socket
# connect _ nonblock(server _ sockaddr) -> 0 (17072.0) -
ソケットをノンブロッキングモードに設定した後、 connect(2) を呼び出します。
...ソケットをノンブロッキングモードに設定した後、
connect(2) を呼び出します。
引数、返り値は Socket#connect と同じです。
connect が EINPROGRESS エラーを報告した場合、その例外(Errno::EINPROGRESS)
には IO::WaitWritable が Object#extend さ......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) がエラーを報告... -
Socket
. gethostbyname(host) -> Array (17058.0) -
ホスト名または IP アドレス(指定方法に関しては lib:socket#host_formatを参照) からホストの情報を返します。
...ホスト名または IP アドレス(指定方法に関しては
lib:socket#host_formatを参照)
からホストの情報を返します。
@param host 文字列でホストを指定します。
@return ホスト情報を含んだ4要素の配列を返します。
=== 返り値のホスト......) ならば
Socket.unpack_sockaddr_in で unpack できます。
=== 使用例
irb(main):009:0> require 'socket'
irb(main):009:0> Socket.gethostbyname("210.251.121.214")
["helium.ruby-lang.org", ["helium"], 2, "\322\373y\326"]
irb(main):009:0> Socket.unpack_sockaddr_in(Socket.gethostby... -
Socket
# connect(server _ sockaddr) -> 0 (17042.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"
print s.read...