creates a socket connected to remote_addr_args and bound to self.
The optional last argument opts is options represented by a hash. opts may have following options:
specify the timeout in seconds.
If a block is given, it is called with the socket and the value of the block is returned. The socket is returned otherwise.
Addrinfo.tcp("0.0.0.0", 4649).connect_to("www.ruby-lang.org", 80) {|s| s.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n" puts s.read }
Returns self
.
Returns a Hash
containing all name/value pairs from ENV:
ENV.replace('foo' => '0', 'bar' => '1') ENV.to_hash # => {"bar"=>"1", "foo"=>"0"}
Returns an IO
object representing the current file. This will be a File
object unless the current file is a stream such as STDIN.
For example:
ARGF.to_io #=> #<File:glark.txt> ARGF.to_io #=> #<IO:<STDIN>>
Returns a string containing the IP address representation in canonical form.
Creates a Range
object for the network address.
Makes a set from the enumerable object with given arguments. Needs to require "set"
to use this method.
Dump Ruby object
to a JSON
string.
Convert a reference into an object using the current server.
This raises a DRbServerNotFound
error if there is no current server. See current_server
.
Get a reference id for an object using the current server.
This raises a DRbServerNotFound
error if there is no current server. See current_server
.
Get a reference id for an object using the current server.
This raises a DRbServerNotFound
error if there is no current server. See current_server
.
Convert a reference into an object using the current server.
This raises a DRbServerNotFound
error if there is no current server. See current_server
.
Response class for Switching Protocol
responses (status code 101).
The <tt>Switching Protocol<tt> response indicates that the server has received a request to switch protocols, and has agreed to do so.
References:
Module
managing the underlying network protocol(s) used by drb.
By default, drb uses the DRbTCPSocket
protocol. Other protocols can be defined. A protocol must define the following class methods:
[open(uri, config)] Open a client connection to the server at +uri+, using configuration +config+. Return a protocol instance for this connection. [open_server(uri, config)] Open a server listening at +uri+, using configuration +config+. Return a protocol instance for this listener. [uri_option(uri, config)] Take a URI, possibly containing an option component (e.g. a trailing '?param=val'), and return a [uri, option] tuple.
All of these methods should raise a DRbBadScheme
error if the URI
does not identify the protocol they support (e.g. “druby:” for the standard Ruby protocol). This is how the DRbProtocol
module, given a URI
, determines which protocol implementation serves that protocol.
The protocol instance returned by open_server
must have the following methods:
Accept a new connection to the server. Returns a protocol instance capable of communicating with the client.
Close the server connection.
Get the URI
for this server.
The protocol instance returned by open
must have the following methods:
Send a request to ref
with the given message id and arguments. This is most easily implemented by calling DRbMessage.send_request, providing a stream that sits on top of the current protocol.
Receive a reply from the server and return it as a [success-boolean, reply-value] pair. This is most easily implemented by calling DRb.recv_reply, providing a stream that sits on top of the current protocol.
Is this connection still alive?
Close this connection.
The protocol instance returned by open_server()
.accept() must have the following methods:
Receive a request from the client and return a [object, message, args, block] tuple. This is most easily implemented by calling DRbMessage.recv_request, providing a stream that sits on top of the current protocol.
Send a reply to the client. This is most easily implemented by calling DRbMessage.send_reply, providing a stream that sits on top of the current protocol.
Close this connection.
A new protocol is registered with the DRbProtocol
module using the add_protocol
method.
For examples of other protocols, see DRbUNIXSocket
in drb/unix.rb, and HTTP0 in sample/http0.rb and sample/http0serv.rb in the full drb distribution.