ライブラリ
- drb (3)
-
net
/ http (5) -
net
/ smtp (1) - openssl (1)
- resolv (2)
- resolv-replace (2)
- socket (93)
-
webrick
/ server (2) -
webrick
/ utils (1)
クラス
- Addrinfo (23)
- BasicSocket (6)
-
DRb
:: DRbServer (1) -
Net
:: HTTP (5) -
Net
:: SMTP (1) -
OpenSSL
:: SSL :: SSLServer (1) -
Resolv
:: DNS :: Resource :: IN :: WKS (2) - Socket (33)
-
Socket
:: AncillaryData (1) - TCPServer (6)
- TCPSocket (5)
-
WEBrick
:: GenericServer (2)
モジュール
- DRb (1)
-
Socket
:: Constants (18) -
WEBrick
:: Utils (1)
キーワード
- DRbProtocol (1)
-
IPPROTO
_ TCP (2) -
NI
_ NAMEREQD (2) -
SOL
_ TCP (2) - Socket (1)
- TCPServer (1)
- TCPSocket (1)
-
TCP
_ CORK (2) -
TCP
_ DEFER _ ACCEPT (2) -
TCP
_ INFO (2) -
TCP
_ KEEPCNT (2) -
TCP
_ KEEPIDLE (2) -
TCP
_ KEEPINTVL (2) -
TCP
_ LINGER2 (2) -
TCP
_ MAXSEG (2) -
TCP
_ MD5SIG (2) -
TCP
_ NODELAY (2) -
TCP
_ NOOPT (2) -
TCP
_ NOPUSH (2) -
TCP
_ QUICKACK (2) -
TCP
_ SYNCNT (2) -
TCP
_ WINDOW _ CLAMP (2) - accept (2)
-
accept
_ loop (1) -
accept
_ nonblock (1) - afamily (1)
- bitmap (1)
- canonname (1)
- connect (1)
-
connect
_ address (1) -
connect
_ from (2) -
create
_ listeners (1) - drb (1)
-
family
_ addrinfo (2) - getaddrinfo (1)
- gethostbyname (1)
- getnameinfo (1)
- getservbyname (1)
- getservbyport (1)
- getsockopt (1)
-
inspect
_ sockaddr (1) - ip? (1)
-
ip
_ address (1) -
ip
_ port (1) -
ip
_ unpack (1) - ipv4? (1)
- ipv6? (1)
- listen (2)
- listeners (1)
-
local
_ address (1) -
net
/ ftp (1) - new (9)
- open (4)
- openssl (1)
- pfamily (1)
- protocol (2)
- recv (1)
- recvmsg (1)
-
remote
_ address (1) - socket (1)
- socktype (1)
- start (4)
-
start
_ service (1) - sysaccept (1)
-
tcp
_ server _ loop (2) -
tcp
_ server _ sockets (4) -
to
_ io (1) -
to
_ s (1) -
to
_ sockaddr (1) - unix? (1)
検索結果
先頭5件
- Addrinfo
. tcp(host , port) -> Addrinfo - Socket
. tcp(host , port , local _ host=nil , local _ port=nil , connect _ timeout: nil) -> Socket - Socket
. tcp(host , port , local _ host=nil , local _ port=nil , connect _ timeout: nil) {|socket| . . . } -> object - Socket
. tcp _ server _ sockets(host , port) -> [Socket] - Socket
. tcp _ server _ sockets(host , port) {|sockets| . . . } -> object
-
Addrinfo
. tcp(host , port) -> Addrinfo (54388.0) -
TCP アドレスに対する Addrinfo オブジェクトを返します。
TCP アドレスに対する Addrinfo オブジェクトを返します。
require 'socket'
Addrinfo.tcp("localhost", "smtp")
#=> #<Addrinfo: 127.0.0.1:25 TCP (localhost:smtp)>
@param host ホスト(IP アドレスもしくはホスト名)
@param port ポート番号(整数)もしくはサービス名(文字列) -
Socket
. tcp(host , port , local _ host=nil , local _ port=nil , connect _ timeout: nil) -> Socket (54373.0) -
TCP/IP で host:port に接続するソケットオブジェクトを作成します。
TCP/IP で host:port に接続するソケットオブジェクトを作成します。
local_host や local_port を指定した場合、ソケットをそこにバインドします。
ブロックを渡すと、生成したソケットをそのブロックに渡し呼び出します。
ブロック終了時にソケットオブジェクトを閉じます。
@param host 接続先のホスト名
@param port 接続先のポート番号
@param local_host 接続元のホスト名
@param local_port 接続元のポート番号
@param connect_timeout タイムアウトまでの秒数
@return ブロック付... -
Socket
. tcp(host , port , local _ host=nil , local _ port=nil , connect _ timeout: nil) {|socket| . . . } -> object (54373.0) -
TCP/IP で host:port に接続するソケットオブジェクトを作成します。
TCP/IP で host:port に接続するソケットオブジェクトを作成します。
local_host や local_port を指定した場合、ソケットをそこにバインドします。
ブロックを渡すと、生成したソケットをそのブロックに渡し呼び出します。
ブロック終了時にソケットオブジェクトを閉じます。
@param host 接続先のホスト名
@param port 接続先のポート番号
@param local_host 接続元のホスト名
@param local_port 接続元のポート番号
@param connect_timeout タイムアウトまでの秒数
@return ブロック付... -
Socket
. tcp _ server _ sockets(host , port) -> [Socket] (18523.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。
TCP/IP で host:port で待ち受けるサーバ側のソケットを
作成します。
ブロックなしの場合は、ソケットオブジェクトの配列を返します。
ブロック付きの場合は、ソケットオブジェクトをそのブロックに
渡して呼び出します。ブロック終了時にそれらのソケットを閉じます。
返り値はブロックの評価値となります。
port が 0 の場合は、実際のポート番号は動的に選ばれます。
ただし返り値のソケットはすべて同じ番号を持ちます。
require 'socket'
# tcp_server_sockets returns は2つのソケットを返す
sockets = Socke... -
Socket
. tcp _ server _ sockets(host , port) {|sockets| . . . } -> object (18523.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。
TCP/IP で host:port で待ち受けるサーバ側のソケットを
作成します。
ブロックなしの場合は、ソケットオブジェクトの配列を返します。
ブロック付きの場合は、ソケットオブジェクトをそのブロックに
渡して呼び出します。ブロック終了時にそれらのソケットを閉じます。
返り値はブロックの評価値となります。
port が 0 の場合は、実際のポート番号は動的に選ばれます。
ただし返り値のソケットはすべて同じ番号を持ちます。
require 'socket'
# tcp_server_sockets returns は2つのソケットを返す
sockets = Socke... -
Socket
. tcp _ server _ sockets(port) -> [Socket] (18523.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。
TCP/IP で host:port で待ち受けるサーバ側のソケットを
作成します。
ブロックなしの場合は、ソケットオブジェクトの配列を返します。
ブロック付きの場合は、ソケットオブジェクトをそのブロックに
渡して呼び出します。ブロック終了時にそれらのソケットを閉じます。
返り値はブロックの評価値となります。
port が 0 の場合は、実際のポート番号は動的に選ばれます。
ただし返り値のソケットはすべて同じ番号を持ちます。
require 'socket'
# tcp_server_sockets returns は2つのソケットを返す
sockets = Socke... -
Socket
. tcp _ server _ sockets(port) {|sockets| . . . } -> object (18523.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。
TCP/IP で host:port で待ち受けるサーバ側のソケットを
作成します。
ブロックなしの場合は、ソケットオブジェクトの配列を返します。
ブロック付きの場合は、ソケットオブジェクトをそのブロックに
渡して呼び出します。ブロック終了時にそれらのソケットを閉じます。
返り値はブロックの評価値となります。
port が 0 の場合は、実際のポート番号は動的に選ばれます。
ただし返り値のソケットはすべて同じ番号を持ちます。
require 'socket'
# tcp_server_sockets returns は2つのソケットを返す
sockets = Socke... -
Socket
. tcp _ server _ loop(host , port) {|sock , addr| . . . } -> () (18427.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。
TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、
新しい接続を受け入れるごとにブロックを呼び出します。
ブロックには新しい接続を表すソケットオブジェクトと、
クライアントアドレスを表す Addrinfo オブジェクトが渡されます。
ブロックの実行が終わってもソケットは close されません。
アプリケーション側が明示的に close する必要があります。
このメソッドはブロックを逐次的に呼び出します。
つまりブロックからリターンするまで次のコネクションを受け入れません。
そのため、同時に複数のクライアントと通信したい場合は
スレッドのような並列機構を使う必... -
Socket
. tcp _ server _ loop(port) {|sock , addr| . . . } -> () (18427.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。
TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、
新しい接続を受け入れるごとにブロックを呼び出します。
ブロックには新しい接続を表すソケットオブジェクトと、
クライアントアドレスを表す Addrinfo オブジェクトが渡されます。
ブロックの実行が終わってもソケットは close されません。
アプリケーション側が明示的に close する必要があります。
このメソッドはブロックを逐次的に呼び出します。
つまりブロックからリターンするまで次のコネクションを受け入れません。
そのため、同時に複数のクライアントと通信したい場合は
スレッドのような並列機構を使う必... -
Socket
:: Constants :: TCP _ NOOPT -> Integer (18388.0) -
Don't use TCP options。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Don't use TCP options。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(4freebsd), tcp(7linux) -
Socket
:: TCP _ NOOPT -> Integer (18388.0) -
Don't use TCP options。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Don't use TCP options。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(4freebsd), tcp(7linux) -
Socket
:: Constants :: SOL _ TCP -> Integer (18370.0) -
TCP socket options。 BasicSocket#getsockopt, BasicSocket#setsockopt の第一引数(level)に使用します。
TCP socket options。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第一引数(level)に使用します。
@see Socket::Constants::IPPROTO_TCP -
Socket
:: SOL _ TCP -> Integer (18370.0) -
TCP socket options。 BasicSocket#getsockopt, BasicSocket#setsockopt の第一引数(level)に使用します。
TCP socket options。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第一引数(level)に使用します。
@see Socket::Constants::IPPROTO_TCP -
Socket
:: Constants :: TCP _ NODELAY -> Integer (18358.0) -
Don't delay sending to coalesce packets。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Don't delay sending to coalesce packets。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(4freebsd),
tcp(7linux), netinet/tcp.h(header) -
Socket
:: TCP _ NODELAY -> Integer (18358.0) -
Don't delay sending to coalesce packets。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Don't delay sending to coalesce packets。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(4freebsd),
tcp(7linux), netinet/tcp.h(header) -
Socket
:: Constants :: IPPROTO _ TCP -> Integer (18340.0) -
Transmission control protocol。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。
Transmission control protocol。
BasicSocket#getsockopt, BasicSocket#setsockopt の
level 引数に使用します。
また、Socket.open の protocol 引数に渡す利用法もあります。
@see netinet/in.h(header)
tcp(4freebsd), tcp(7linux) -
Socket
:: Constants :: TCP _ INFO -> Integer (18340.0) -
Retrieve information about this socket。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Retrieve information about this socket。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(4freebsd), tcp(7linux) -
Socket
:: Constants :: TCP _ MAXSEG -> Integer (18340.0) -
Set maximum segment size。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Set maximum segment size。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(4freebsd), tcp(7linux) -
Socket
:: Constants :: TCP _ NOPUSH -> Integer (18340.0) -
Don't push the last block of write。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Don't push the last block of write。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(4freebsd), tcp(7linux) -
Socket
:: IPPROTO _ TCP -> Integer (18340.0) -
Transmission control protocol。 BasicSocket#getsockopt, BasicSocket#setsockopt の level 引数に使用します。
Transmission control protocol。
BasicSocket#getsockopt, BasicSocket#setsockopt の
level 引数に使用します。
また、Socket.open の protocol 引数に渡す利用法もあります。
@see netinet/in.h(header)
tcp(4freebsd), tcp(7linux) -
Socket
:: TCP _ INFO -> Integer (18340.0) -
Retrieve information about this socket。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Retrieve information about this socket。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(4freebsd), tcp(7linux) -
Socket
:: TCP _ MAXSEG -> Integer (18340.0) -
Set maximum segment size。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Set maximum segment size。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(4freebsd), tcp(7linux) -
Socket
:: TCP _ NOPUSH -> Integer (18340.0) -
Don't push the last block of write。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Don't push the last block of write。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(4freebsd), tcp(7linux) -
Socket
:: Constants :: TCP _ CORK -> Integer (18322.0) -
Don't send partial frames。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Don't send partial frames。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: Constants :: TCP _ DEFER _ ACCEPT -> Integer (18322.0) -
Don't notify a listening socket until data is ready。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Don't notify a listening socket until data is ready。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: Constants :: TCP _ KEEPCNT -> Integer (18322.0) -
Maximum number of keepalive probes allowed before dropping a connection。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Maximum number of keepalive probes allowed before dropping a connection。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: Constants :: TCP _ KEEPIDLE -> Integer (18322.0) -
Idle time before keepalive probes are sent。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Idle time before keepalive probes are sent。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: Constants :: TCP _ KEEPINTVL -> Integer (18322.0) -
Time between keepalive probes。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Time between keepalive probes。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: Constants :: TCP _ LINGER2 -> Integer (18322.0) -
Lifetime of orphaned FIN_WAIT2 sockets。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Lifetime of orphaned FIN_WAIT2 sockets。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: Constants :: TCP _ MD5SIG -> Integer (18322.0) -
Use MD5 digests (RFC2385)。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Use MD5 digests (RFC2385)。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(4freebsd), 2385 -
Socket
:: Constants :: TCP _ QUICKACK -> Integer (18322.0) -
Enable quickack mode。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Enable quickack mode。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: Constants :: TCP _ SYNCNT -> Integer (18322.0) -
Number of SYN retransmits before a connection is dropped。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Number of SYN retransmits before a connection is dropped。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: Constants :: TCP _ WINDOW _ CLAMP -> Integer (18322.0) -
Clamp the size of the advertised window。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Clamp the size of the advertised window。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: TCP _ CORK -> Integer (18322.0) -
Don't send partial frames。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Don't send partial frames。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: TCP _ DEFER _ ACCEPT -> Integer (18322.0) -
Don't notify a listening socket until data is ready。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Don't notify a listening socket until data is ready。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: TCP _ KEEPCNT -> Integer (18322.0) -
Maximum number of keepalive probes allowed before dropping a connection。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Maximum number of keepalive probes allowed before dropping a connection。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: TCP _ KEEPIDLE -> Integer (18322.0) -
Idle time before keepalive probes are sent。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Idle time before keepalive probes are sent。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: TCP _ KEEPINTVL -> Integer (18322.0) -
Time between keepalive probes。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Time between keepalive probes。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: TCP _ LINGER2 -> Integer (18322.0) -
Lifetime of orphaned FIN_WAIT2 sockets。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Lifetime of orphaned FIN_WAIT2 sockets。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: TCP _ MD5SIG -> Integer (18322.0) -
Use MD5 digests (RFC2385)。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Use MD5 digests (RFC2385)。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(4freebsd), 2385 -
Socket
:: TCP _ QUICKACK -> Integer (18322.0) -
Enable quickack mode。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Enable quickack mode。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: TCP _ SYNCNT -> Integer (18322.0) -
Number of SYN retransmits before a connection is dropped。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Number of SYN retransmits before a connection is dropped。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
Socket
:: TCP _ WINDOW _ CLAMP -> Integer (18322.0) -
Clamp the size of the advertised window。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Clamp the size of the advertised window。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see tcp(7linux) -
TCPServer (18049.0)
-
TCP/IP ストリーム型接続のサーバ側のソケットのクラスです。
TCP/IP ストリーム型接続のサーバ側のソケットのクラスです。
このクラスによって簡単にソケットを利用したサーバのプログラミングができます。
例えば echo サーバは以下のようになります。
require "socket"
gs = TCPServer.open(0)
socks = [gs]
addr = gs.addr
addr.shift
printf("server is on %s\n", addr.join(":"))
while true
nsock = select(socks)
next if nsock ==... -
TCPSocket (18001.0)
-
インターネットドメインのストリーム型ソケットのクラスです。
インターネットドメインのストリーム型ソケットのクラスです。
通常のIO クラスのサブクラスと同
様の入出力ができます。このクラスによってソケットを用いたクラ
イアントを簡単に記述できるようになります。
ユーザの入力をそのままサーバに転送するプログラムは以下の
ようになります。
require "socket"
port = if ARGV.size > 0 then ARGV.shift else 4444 end
print port, "\n"
s = TCPSocket.open("localhost", port)
while gets
... -
TCPServer
# accept -> TCPSocket (9301.0) -
クライアントからの接続要求を受け付け、接続した TCPSocket のインスタンスを返します。
クライアントからの接続要求を受け付け、接続した
TCPSocket のインスタンスを返します。
例:
require 'socket'
TCPServer.open("", 0) {|serv|
c = TCPSocket.new(*serv.addr.values_at(3,1))
s = serv.accept
c.write "foo"
p s.recv(10) #=> "foo"
} -
TCPServer
# accept _ nonblock -> TCPSocket (9301.0) -
ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。
ソケットをノンブロッキングモードに設定した後、
accept(2) を呼び出します。
返り値は TCPServer#accept と同じです。
accept(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
@raise Errno::EXXX accept(2) がエラーになった場合に発生します。 -
TCPServer
. new(host=nil , service) -> TCPServer (9301.0) -
新しいサーバー接続をオープンします。service は /etc/services (または NIS) に登録されているサービ ス名かポート番号で指定します。host を指定した時は 指定したホストに対しての接続だけを受け付けます。
新しいサーバー接続をオープンします。service は
/etc/services (または NIS) に登録されているサービ
ス名かポート番号で指定します。host を指定した時は
指定したホストに対しての接続だけを受け付けます。
省略時は全てのホストへの接続要求を受け付けることになります。
new, open は内部では getaddrinfo(3) を呼び出しており、
複数のアドレス構造体が検出された場合、
最初に見つかったものを返します。
実行環境によっては IPv4, IPv6 のどちらか専用の接続になる場合がありますが、
その場合、host を省略せず明示的に指定することで、接... -
TCPServer
. open(host=nil , service) -> TCPServer (9301.0) -
新しいサーバー接続をオープンします。service は /etc/services (または NIS) に登録されているサービ ス名かポート番号で指定します。host を指定した時は 指定したホストに対しての接続だけを受け付けます。
新しいサーバー接続をオープンします。service は
/etc/services (または NIS) に登録されているサービ
ス名かポート番号で指定します。host を指定した時は
指定したホストに対しての接続だけを受け付けます。
省略時は全てのホストへの接続要求を受け付けることになります。
new, open は内部では getaddrinfo(3) を呼び出しており、
複数のアドレス構造体が検出された場合、
最初に見つかったものを返します。
実行環境によっては IPv4, IPv6 のどちらか専用の接続になる場合がありますが、
その場合、host を省略せず明示的に指定することで、接... -
TCPSocket
. new(host , serv , local _ host=nil , local _ service=nil) -> TCPSocket (9301.0) -
TCPSocket.new のパラメータ host と local_host の名前解決に resolv ライブラリを使います。
TCPSocket.new のパラメータ host と local_host
の名前解決に resolv ライブラリを使います。
@param host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param service /etc/services (または NIS) に登録されているサービス名かポート番号を指定します。
@param local_host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param local_service /etc/services (または NIS) に登録さ... -
TCPSocket
. new(host , service , local _ host=nil , local _ service=nil) -> TCPSocket (9301.0) -
host で指定したホストの service で指定したポートと接続したソケッ トを返します。host はホスト名、またはインターネットアドレスを 示す文字列、service は /etc/services (または NIS) に登録されている サービス名かポート番号です。
host で指定したホストの service で指定したポートと接続したソケッ
トを返します。host はホスト名、またはインターネットアドレスを
示す文字列、service は /etc/services (または NIS) に登録されている
サービス名かポート番号です。
引数 local_host, local_service を指定した場合、そのアドレス
に対して bind(2) します。
@param host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param service /etc/services (または N... -
TCPSocket
. open(host , serv , local _ host=nil , local _ service=nil) -> TCPSocket (9301.0) -
TCPSocket.new のパラメータ host と local_host の名前解決に resolv ライブラリを使います。
TCPSocket.new のパラメータ host と local_host
の名前解決に resolv ライブラリを使います。
@param host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param service /etc/services (または NIS) に登録されているサービス名かポート番号を指定します。
@param local_host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param local_service /etc/services (または NIS) に登録さ... -
TCPSocket
. open(host , service , local _ host=nil , local _ service=nil) -> TCPSocket (9301.0) -
host で指定したホストの service で指定したポートと接続したソケッ トを返します。host はホスト名、またはインターネットアドレスを 示す文字列、service は /etc/services (または NIS) に登録されている サービス名かポート番号です。
host で指定したホストの service で指定したポートと接続したソケッ
トを返します。host はホスト名、またはインターネットアドレスを
示す文字列、service は /etc/services (または NIS) に登録されている
サービス名かポート番号です。
引数 local_host, local_service を指定した場合、そのアドレス
に対して bind(2) します。
@param host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param service /etc/services (または N... -
TCPServer
# listen(backlog) -> 0 (9001.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 を返します。 -
TCPServer
# sysaccept -> Integer (9001.0) -
接続したクライアントのソケットをファイル記述子で返すことを除けば TCPServer#accept と同じです。
接続したクライアントのソケットをファイル記述子で返すことを除けば
TCPServer#accept と同じです。
例:
require 'socket'
TCPServer.open("", 0) {|serv|
c = TCPSocket.new(*serv.addr.values_at(3,1))
p serv.sysaccept #=> 6
} -
TCPSocket
. gethostbyname(host) -> Array (9001.0) -
ホスト名または IP アドレス (整数または"127.0.0.1" のような文字列)からホストの情報を返します。ホスト情報は、ホ スト名、ホストの別名の配列、ホストのアドレスタイプ、ホストの アドレスを各要素とする配列です。ホストのアドレスは octet decimal の文字列 ("127.0.0.1"のような文字列) や IPv6 アドレス ("::1" のような文字列) です。
ホスト名または IP アドレス (整数または"127.0.0.1"
のような文字列)からホストの情報を返します。ホスト情報は、ホ
スト名、ホストの別名の配列、ホストのアドレスタイプ、ホストの
アドレスを各要素とする配列です。ホストのアドレスは octet
decimal の文字列 ("127.0.0.1"のような文字列) や IPv6
アドレス ("::1" のような文字列) です。
@param host ホスト名または IP アドレス (整数または"127.0.0.1" のような文字列)を指定します。
@return ホスト名、ホストの別名の配列、ホストのアドレスタイプ、ホストのアド... -
Socket
. getservbyname(service , proto = "tcp") -> Integer (370.0) -
service, protoに対応するポート番号を返 します。protoの省略値は"tcp"です。
service, protoに対応するポート番号を返
します。protoの省略値は"tcp"です。
@param service サービス名を文字列で指定します。例えば、"ftp", "telnet" が相当します。
@param proto プロトコル名を文字列で指定します。省略値は"tcp" です。
@return ポート番号を整数で返します。 -
Socket
. getservbyport(port , protocol _ name="tcp") -> String (340.0) -
ポート番号に対応するサービスの正式名を返します。
ポート番号に対応するサービスの正式名を返します。
@param port ポート番号
@param protocol_name "tcp" や "udp" などのプロトコル名
@return サービスの正式名
require 'socket'
Socket.getservbyport(80) #=> "www"
Socket.getservbyport(514, "tcp") #=> "shell"
Socket.getservbyport(514, "udp") #=> "syslog" -
OpenSSL
:: SSL :: SSLServer # to _ io -> TCPServer (301.0) -
ラップしている TCPServer オブジェクトを返します。
ラップしている TCPServer オブジェクトを返します。 -
WEBrick
:: GenericServer # listen(address , port) -> [TCPServer] (301.0) -
与えられたアドレスとポートで TCPServer オブジェクトを生成し listener として管理します。
与えられたアドレスとポートで TCPServer オブジェクトを生成し
listener として管理します。
@param address アドレスを文字列で指定します。
@param port listen するポートを整数で指定します。
@see WEBrick::GenericServer#listeners, TCPServer#listen -
WEBrick
:: GenericServer # listeners -> [TCPServer] (301.0) -
listen している TCPServer オブジェクトの配列を返します。
listen している TCPServer オブジェクトの配列を返します。 -
WEBrick
:: Utils . # create _ listeners(address , port , logger = nil) -> [TCPServer] (301.0) -
与えられたアドレスとポートで TCPServer オブジェクトを生成し ます。
与えられたアドレスとポートで TCPServer オブジェクトを生成し
ます。
@param address アドレスを指定します。
@param port ポート番号を指定します。
@param logger ロガーオブジェクトを指定します。
@raise ArgumentError port を指定しなかった場合に発生します。
@see Socket.getaddrinfo, TCPServer -
BasicSocket
# getsockopt(level , optname) -> Socket :: Option (91.0) -
ソケットのオプションを取得します。getsockopt(2) を参照してください。 取得したオプションのデータを Socket::Option で返します。
ソケットのオプションを取得します。getsockopt(2)
を参照してください。
取得したオプションのデータを Socket::Option で返します。
level, optname には Socket::SOL_SOCKET や Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いることができます。
@param level getsockopt(2) の 第二引数のlevel
@param optname gets... -
Socket (91.0)
-
汎用ソケットクラス。
汎用ソケットクラス。
システムコールレベルから高水準の機能までを提供します。
ソケットオブジェクトを生成する汎用的な方法として
Socket.new がありますが、以下のようなより便利な
メソッドがあります。
* TCP のクライアントソケット Socket.tcp TCPSocket.open
* TCP のサーバソケット Socket.tcp_server_loop,
Socket.tcp_server_sockets, TCPServer.open
* UNIX socket のクライアントソケット Socket.unix UNIXSocket.open
* ... -
Socket
:: AncillaryData . new(family , cmsg _ level , cmsg _ type , cmsg _ data) -> Socket :: AncillaryData (91.0) -
新たな Socket::AncillaryData オブジェクトを生成します。
新たな Socket::AncillaryData オブジェクトを生成します。
family はソケットファミリーを指定します。
整数、文字列、シンボルを渡します。
* Socket::AF_INET, "AF_INET", "INET", :AF_INET, :INET
* Socket::AF_UNIX, "AF_UNIX", "UNIX", :AF_UNIX, :UNIX
* など
cmsg_level にはメッセージの元となるプロトコルを指定します。
整数、文字列、シンボルを渡します。
* Socket::SOL_SOCKET, "SOL_SOCKET", "SOCKET... -
Net
:: HTTP # start -> self (49.0) -
TCP コネクションを張り、HTTP セッションを開始します。 すでにセッションが開始していたら例外 IOError を発生します。
TCP コネクションを張り、HTTP セッションを開始します。
すでにセッションが開始していたら例外 IOError を発生します。
ブロックを与えた場合には自分自身をそのブロックに
渡し、ブロックが終わったときに接続を閉じます。このときは
ブロックの値を返り値とします。
ブロックを与えなかった場合には自分自身を返します。
利用後にはこのオブジェクトを Net::HTTP#finish してください。
@raise IOError すでにセッションが開始していた場合に発生します。
@raise Net::OpenTimeout 接続がタイムアウトしたときに発生します -
Net
:: HTTP # start {|http| . . . . } -> object (49.0) -
TCP コネクションを張り、HTTP セッションを開始します。 すでにセッションが開始していたら例外 IOError を発生します。
TCP コネクションを張り、HTTP セッションを開始します。
すでにセッションが開始していたら例外 IOError を発生します。
ブロックを与えた場合には自分自身をそのブロックに
渡し、ブロックが終わったときに接続を閉じます。このときは
ブロックの値を返り値とします。
ブロックを与えなかった場合には自分自身を返します。
利用後にはこのオブジェクトを Net::HTTP#finish してください。
@raise IOError すでにセッションが開始していた場合に発生します。
@raise Net::OpenTimeout 接続がタイムアウトしたときに発生します -
Net
:: HTTP . start(address , port = 80 , proxy _ addr = :ENV , proxy _ port = nil , proxy _ user=nil , proxy _ pass=nil) -> Net :: HTTP (49.0) -
新しい Net::HTTP オブジェクトを生成し、 TCP コネクション、 HTTP セッションを開始します。
新しい Net::HTTP オブジェクトを生成し、
TCP コネクション、 HTTP セッションを開始します。
ブロックを与えた場合には生成したオブジェクトをそのブロックに
渡し、ブロックが終わったときに接続を閉じます。このときは
ブロックの値を返り値とします。
ブロックを与えなかった場合には生成したオブジェクトを渡します。
利用後にはこのオブジェクトを Net::HTTP#finish してください。
proxy_addr に :ENV を指定すると環境変数 http_proxy からプロクシの URI を
取り出し利用します。環境変数 http_proxy が定義されていない場合に... -
Net
:: HTTP . start(address , port = 80 , proxy _ addr = :ENV , proxy _ port = nil , proxy _ user=nil , proxy _ pass=nil) {|http| . . . . } -> object (49.0) -
新しい Net::HTTP オブジェクトを生成し、 TCP コネクション、 HTTP セッションを開始します。
新しい Net::HTTP オブジェクトを生成し、
TCP コネクション、 HTTP セッションを開始します。
ブロックを与えた場合には生成したオブジェクトをそのブロックに
渡し、ブロックが終わったときに接続を閉じます。このときは
ブロックの値を返り値とします。
ブロックを与えなかった場合には生成したオブジェクトを渡します。
利用後にはこのオブジェクトを Net::HTTP#finish してください。
proxy_addr に :ENV を指定すると環境変数 http_proxy からプロクシの URI を
取り出し利用します。環境変数 http_proxy が定義されていない場合に... -
Net
:: SMTP . new(address , port = Net :: SMTP . default _ port) -> Net :: SMTP (49.0) -
新しい SMTP オブジェクトを生成します。 address はSMTPサーバーのFQDNで、 port は接続するポート番号です。 ただし、このメソッドではまだTCPの接続はしません。 Net::SMTP#start で接続します。
新しい SMTP オブジェクトを生成します。
address はSMTPサーバーのFQDNで、
port は接続するポート番号です。
ただし、このメソッドではまだTCPの接続はしません。
Net::SMTP#start で接続します。
オブジェクトの生成と接続を同時にしたい場合には
Net::SMTP.start を代わりに使ってください。
@param address 接続先のSMTPサーバの文字列
@param port 接続ポート番号
@see Net::SMTP.start, Net::SMTP#start -
Addrinfo
# family _ addrinfo(host , port) -> Addrinfo (37.0) -
引数から自身に「似た」Addrinfo オブジェクトを生成します。
引数から自身に「似た」Addrinfo オブジェクトを生成します。
「似た」の意味はプロトコルファミリ、ソケットタイプ、プロトコルが
同じことを意味します。
require 'socket'
Addrinfo.tcp("0.0.0.0", 4649).family_addrinfo("www.ruby-lang.org", 80)
#=> #<Addrinfo: 221.186.184.68:80 TCP (www.ruby-lang.org:80)>
Addrinfo.unix("/tmp/sock").family_addrinfo("/tmp/sock2")... -
Addrinfo
# family _ addrinfo(path) -> Addrinfo (37.0) -
引数から自身に「似た」Addrinfo オブジェクトを生成します。
引数から自身に「似た」Addrinfo オブジェクトを生成します。
「似た」の意味はプロトコルファミリ、ソケットタイプ、プロトコルが
同じことを意味します。
require 'socket'
Addrinfo.tcp("0.0.0.0", 4649).family_addrinfo("www.ruby-lang.org", 80)
#=> #<Addrinfo: 221.186.184.68:80 TCP (www.ruby-lang.org:80)>
Addrinfo.unix("/tmp/sock").family_addrinfo("/tmp/sock2")... -
Addrinfo
# getnameinfo(flags=0) -> [String , String] (37.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 getnam... -
Addrinfo
# inspect _ sockaddr -> String (37.0) -
アドレスやポート番号などの情報を人間に読める形の文字列で返します。
アドレスやポート番号などの情報を人間に読める形の文字列で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).inspect_sockaddr #=> "127.0.0.1:80"
Addrinfo.tcp("ip6-localhost", 80).inspect_sockaddr #=> "[::1]:80"
Addrinfo.unix("/tmp/sock").inspect_sockaddr #=> "/tmp/sock" -
Addrinfo
# ip? -> bool (37.0) -
アドレスが IP (v4/v6) のものならば true を返します。
アドレスが IP (v4/v6) のものならば true を返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ip? #=> true
Addrinfo.tcp("::1", 80).ip? #=> true
Addrinfo.unix("/tmp/sock").ip? #=> false
@see Addrinfo#ipv4?, Addrinfo#ipv6?, Addrinfo#unix? -
Addrinfo
# ip _ address -> String (37.0) -
IP アドレスを文字列で返します。
IP アドレスを文字列で返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ip_address #=> "127.0.0.1"
Addrinfo.tcp("::1", 80).ip_address #=> "::1"
@see Addrinfo#ip_port, Addrinfo#ip_unpack -
Addrinfo
# ip _ port -> Integer (37.0) -
ポート番号を整数で返します。
ポート番号を整数で返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ip_port #=> 80
Addrinfo.tcp("::1", 80).ip_port #=> 80
@see Addrinfo#ip_address, Addrinfo#ip_unpack -
Addrinfo
# ip _ unpack -> [String , Integer] (37.0) -
IP アドレスとポート番号を 2 要素の配列で返します。
IP アドレスとポート番号を 2 要素の配列で返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ip_unpack #=> ["127.0.0.1", 80]
Addrinfo.tcp("::1", 80).ip_unpack #=> ["::1", 80]
@see Addrinfo#ip_address, Addrinfo#ip_port -
Addrinfo
# ipv4? -> bool (37.0) -
アドレスが IPv4 のものならば true を返します。
アドレスが IPv4 のものならば true を返します。
@see Addrinfo#ip?, Addrinfo#ipv6?
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ipv4? #=> true
Addrinfo.tcp("::1", 80).ipv4? #=> false
Addrinfo.unix("/tmp/sock").ipv4? #=> false -
Addrinfo
# ipv6? -> bool (37.0) -
アドレスが IPv6 のものならば true を返します。
アドレスが IPv6 のものならば true を返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ipv6? #=> false
Addrinfo.tcp("::1", 80).ipv6? #=> true
Addrinfo.unix("/tmp/sock").ipv6? #=> false
@see Addrinfo#ipv4?, Addrinfo#ip? -
Addrinfo
# protocol -> Integer (37.0) -
ソケットプロトコルを整数で返します。
ソケットプロトコルを整数で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).protocol == Socket::IPPROTO_TCP #=> true -
Addrinfo
# unix? -> bool (37.0) -
アドレスが Unix domain socket のものならば true を返します。
アドレスが Unix domain socket のものならば true を返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).unix? #=> false
Addrinfo.tcp("::1", 80).unix? #=> false
Addrinfo.unix("/tmp/sock").unix? #=> true
@see Addrinfo#ip? -
Addrinfo
. getaddrinfo(nodename , service , family=nil , socktype=nil , protocol=nil , flags=0) -> [Addrinfo] (37.0) -
パラメータから複数の Addrinfo オブジェクトを生成し、その配列を返します。
パラメータから複数の Addrinfo オブジェクトを生成し、その配列を返します。
nodename (ホスト名) と service (ポート番号) を Addrinfo に変換します。
変換先は一意ではないため、複数のオブジェクトを返します。
nodename と service のどちらか一方は nil を渡すことができます
(その部分は変換されません)。
family, socktype, protocol には希望する方式のヒントを与えます。
例えば、SOCK_STREAM なソケットが必要な場合には socktype に指定します。
nil を指定した場合には制限しないことを... -
BasicSocket
# connect _ address -> Addrinfo (37.0) -
ローカルマシン内で接続するのに適当なアドレスを Addrinfo オブジェクトで返します。
ローカルマシン内で接続するのに適当なアドレスを Addrinfo
オブジェクトで返します。
BasicSocket#local_address の返り値
以下の点を除いては同じものを返します。
* IPv4 の不定アドレス(0.0.0.0) は IPv4 のループバックアドレス(127.0.0.1)
に置換される
* IPv6 の不定アドレス(::) は IPv6 のループバックアドレス(::1)
に置換される
BasicSocket#local_address が接続先として不適なアドレスを返す場合は
例外 SocketError が発生します。
requ... -
BasicSocket
# local _ address -> Addrinfo (37.0) -
getsockname(2) で得られたローカルアドレス情報を Addrinfo オブジェクトとして返します。
getsockname(2) で得られたローカルアドレス情報を
Addrinfo オブジェクトとして返します。
返されたオブジェクトの Addrinfo#protocol は 0 を
返すことに注意してください。
require 'socket'
TCPSocket.open("www.ruby-lang.org", 80) {|s|
p s.local_address #=> #<Addrinfo: 192.168.0.129:36873 TCP>
}
TCPServer.open("127.0.0.1", 1512) {|serv|
p serv... -
BasicSocket
# remote _ address -> Addrinfo (37.0) -
getpeername(2) で得られたリモートアドレス情報を Addrinfo オブジェクトとして返します。
getpeername(2) で得られたリモートアドレス情報を
Addrinfo オブジェクトとして返します。
返されたオブジェクトの Addrinfo#protocol は 0 を
返すことに注意してください。
require 'socket'
TCPSocket.open("www.ruby-lang.org", 80) {|s|
p s.remote_address #=> #<Addrinfo: 221.186.184.68:80 TCP>
}
TCPServer.open("127.0.0.1", 1728) {|serv|
c = TCP... -
DRb
. # start _ service(uri=nil , front=nil , config _ or _ acl=nil) -> () (37.0) -
dRuby のサービス(サーバ)を起動します。
dRuby のサービス(サーバ)を起動します。
これで起動したサーバはプロセスのプライマリサーバとなります。
すでにプライマリサーバが存在する場合は上書きされます。
uri に URI を文字列で指定すると、それに起動したサービスを bind します。
通常は 'druby://<hostname>:<port>' という形式の URI を指定します。
このときは TCP が通信手段として使われます。
'drbunix:' のような他のプロトコルを指定することもできます。
front でフロントオブジェクト(URI に結び付けられるオブジェクト)を
設定します。
config で H... -
DRb
:: DRbServer . new(uri=nil , front=nil , config _ or _ acl=nil) -> DRb :: DRbServer (37.0) -
dRuby サーバを起動し、DRbServerのインスタンスを返します。
dRuby サーバを起動し、DRbServerのインスタンスを返します。
uri に URI を文字列で指定すると、それに起動したサービスを bind します。
通常は 'druby://<hostname>:<port>' という形式の URI を指定します。
このときは TCP が通信手段として使われます。
'drbunix:' のような他のプロトコルを指定することもできます。
front でフロントオブジェクト(URI に結び付けられるオブジェクト)を
設定します。
config で Hash で設定を渡します。以下の項目が利用できます。
: :idconv
dRuby内... -
Socket
. accept _ loop(sockets) {|sock , client _ addrinfo| . . . } -> () (37.0) -
sockets でサーバソケットを受け取り、接続を待ち受け、 クライアントとの接続が確立するたびにブロックにその接続 ソケットを渡し呼び出します。
sockets でサーバソケットを受け取り、接続を待ち受け、
クライアントとの接続が確立するたびにブロックにその接続
ソケットを渡し呼び出します。
ブロックの引数はクライアントと接続したソケットオブジェクトと
Addrinfo オブジェクトです。
Socket.tcp_server_loop と同様、ブロックは
逐次的に呼び出されます。つまりブロックか終了するまで
次の接続は accept されません。
並列に通信したい場合は
スレッドのような並列実行機構を使う必要があります。
@param sockets 待ち受けたいサーバソケットの配列
@see Socket.tcp_server... -
Socket
:: Constants :: NI _ NAMEREQD -> Integer (37.0) -
A name is required。名前解決できなかった場合にエラーを返すことを意味します。
A name is required。名前解決できなかった場合にエラーを返すことを意味します。
Socket.getnameinfo, Addrinfo#getnameinfo の引数 flags に渡す
定数です。
require 'socket'
# ここでは 192.0.2.18 は名前解決できないアドレス
Addrinfo.tcp("192.0.2.18", 514).getnameinfo()
# =>["192.0.2.18", "shell"]
Addrinfo.tcp("192.0.2.18", 514).getnameinfo(Socket:... -
Socket
:: NI _ NAMEREQD -> Integer (37.0) -
A name is required。名前解決できなかった場合にエラーを返すことを意味します。
A name is required。名前解決できなかった場合にエラーを返すことを意味します。
Socket.getnameinfo, Addrinfo#getnameinfo の引数 flags に渡す
定数です。
require 'socket'
# ここでは 192.0.2.18 は名前解決できないアドレス
Addrinfo.tcp("192.0.2.18", 514).getnameinfo()
# =>["192.0.2.18", "shell"]
Addrinfo.tcp("192.0.2.18", 514).getnameinfo(Socket:... -
socket (37.0)
-
socket はプロセス外部との通信 (プロセス間通信、ホスト間通信) を実現します。
socket はプロセス外部との通信 (プロセス間通信、ホスト間通信) を実現します。
=== ソケットアドレス
ソケットというのは通信路の末端です。
たとえば 1対1 の通信では、まず通信路の両端にひとつずつソケットをつくり、
それらのソケットを接続することによって通信路が確立し、相互に通信できるようになります。
この接続時に、一方のソケットにもう一方のソケットの場所を教えてやる必要がありますが、
この場所を指定するものがソケットアドレスです。
ソケットアドレスはソケットの種類によって中身が異なります。
たとえば TCP では IP アドレスとポート番号ですし、
Unix ドメインソ... -
Addrinfo
# afamily -> Integer (19.0) -
アドレスファミリーを整数で返します。
アドレスファミリーを整数で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).afamily == Socket::AF_INET #=> true -
Addrinfo
# canonname -> String|nil (19.0) -
カノニカル名を文字列で返します。
カノニカル名を文字列で返します。
カノニカル名が存在しない場合には nil を返します。
カノニカル名は Addrinfo.getaddrinfo に Socket::AI_CANONINAME
を指定した場合にセットされます。
require 'socket'
list = Addrinfo.getaddrinfo("www.ruby-lang.org", 80, :INET, :STREAM, nil, Socket::AI_CANONNAME)
p list[0] #=> #<Addrinfo: 221.186.184.68:80 TCP carbon.ruby-la... -
Addrinfo
# connect _ from(host , port) -> Socket (19.0) -
引数で指定されたアドレスから 自身のアドレスへソケットを接続します。
引数で指定されたアドレスから
自身のアドレスへソケットを接続します。
接続元のアドレスは Addrinfo#family_addrinfo により生成された
ものが用いられます。
ブロックが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済みSocket
オブジェクトが返されます。
引数で指定したアドレスはソケット接続のローカル側のアドレスになります。
require 'socket'
Addrinfo.tcp("www.ruby-lang.org", 80).co... -
Addrinfo
# connect _ from(host , port) {|sock| . . . } -> object (19.0) -
引数で指定されたアドレスから 自身のアドレスへソケットを接続します。
引数で指定されたアドレスから
自身のアドレスへソケットを接続します。
接続元のアドレスは Addrinfo#family_addrinfo により生成された
ものが用いられます。
ブロックが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済みSocket
オブジェクトが返されます。
引数で指定したアドレスはソケット接続のローカル側のアドレスになります。
require 'socket'
Addrinfo.tcp("www.ruby-lang.org", 80).co... -
Addrinfo
# pfamily -> Integer (19.0) -
プロトコルファミリーを整数で返します。
プロトコルファミリーを整数で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).pfamily == Socket::PF_INET #=> true -
Addrinfo
# socktype -> Integer (19.0) -
ソケットタイプを整数で返します。
ソケットタイプを整数で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).socktype == Socket::SOCK_STREAM #=> true -
Addrinfo
# to _ s -> String (19.0) -
struct sockaddr をパックした形式の文字列に変換します。
struct sockaddr をパックした形式の文字列に変換します。
require 'socket'
Addrinfo.tcp("localhost", 80).to_sockaddr
#=> "\x02\x00\x00P\x7F\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00" -
Addrinfo
# to _ sockaddr -> String (19.0) -
struct sockaddr をパックした形式の文字列に変換します。
struct sockaddr をパックした形式の文字列に変換します。
require 'socket'
Addrinfo.tcp("localhost", 80).to_sockaddr
#=> "\x02\x00\x00P\x7F\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00"