This is a Ruby tree! It shows every object from the Ruby Programming Language in a tree format.

connect

        # Socket.connect

(from ruby core)
---
    socket.connect(remote_sockaddr) => 0

---

Requests a connection to be made on the given `remote_sockaddr`. Returns
0 if successful, otherwise an exception is raised.

### Parameter
*   `remote_sockaddr` - the `struct` sockaddr contained in a string or
    Addrinfo object


### Example:
    # Pull down Google's web page
    require 'socket'
    include Socket::Constants
    socket = Socket.new( AF_INET, SOCK_STREAM, 0 )
    sockaddr = Socket.pack_sockaddr_in( 80, 'www.google.com' )
    socket.connect( sockaddr )
    socket.write( "GET / HTTP/1.0\r\n\r\n" )
    results = socket.read

### Unix-based Exceptions
On unix-based systems the following system exceptions may be raised if
the call to *connect* fails:
*   Errno::EACCES - search permission is denied for a component of the
    prefix path or write access to the `socket` is denied
*   Errno::EADDRINUSE - the *sockaddr* is already in use
*   Errno::EADDRNOTAVAIL - the specified *sockaddr* is not available
    from the local machine
*   Errno::EAFNOSUPPORT - the specified *sockaddr* is not a valid
    address for the address family of the specified `socket`
*   Errno::EALREADY - a connection is already in progress for the
    specified socket
*   Errno::EBADF - the `socket` is not a valid file descriptor
*   Errno::ECONNREFUSED - the target *sockaddr* was not listening for
    connections refused the connection request
*   Errno::ECONNRESET - the remote host reset the connection request
*   Errno::EFAULT - the *sockaddr* cannot be accessed
*   Errno::EHOSTUNREACH - the destination host cannot be reached
    (probably because the host is down or a remote router cannot reach
    it)
*   Errno::EINPROGRESS - the O_NONBLOCK is set for the `socket` and the
    connection cannot be immediately established; the connection will be
    established asynchronously
*   Errno::EINTR - the attempt to establish the connection was
    interrupted by delivery of a signal that was caught; the connection
    will be established asynchronously
*   Errno::EISCONN - the specified `socket` is already connected
*   Errno::EINVAL - the address length used for the *sockaddr* is not a
    valid length for the address family or there is an invalid family in
    *sockaddr*
*   Errno::ENAMETOOLONG - the pathname resolved had a length which
    exceeded PATH_MAX
*   Errno::ENETDOWN - the local interface used to reach the destination
    is down
*   Errno::ENETUNREACH - no route to the network is present
*   Errno::ENOBUFS - no buffer space is available
*   Errno::ENOSR - there were insufficient STREAMS resources available
    to complete the operation
*   Errno::ENOTSOCK - the `socket` argument does not refer to a socket
*   Errno::EOPNOTSUPP - the calling `socket` is listening and cannot be
    connected
*   Errno::EPROTOTYPE - the *sockaddr* has a different type than the
    socket bound to the specified peer address
*   Errno::ETIMEDOUT - the attempt to connect timed out before a
    connection was made.


On unix-based systems if the address family of the calling `socket` is
AF_UNIX the follow exceptions may be raised if the call to *connect*
fails:
*   Errno::EIO - an i/o error occurred while reading from or writing to
    the file system
*   Errno::ELOOP - too many symbolic links were encountered in
    translating the pathname in *sockaddr*
*   Errno::ENAMETOOLLONG - a component of a pathname exceeded NAME_MAX
    characters, or an entire pathname exceeded PATH_MAX characters
*   Errno::ENOENT - a component of the pathname does not name an
    existing file or the pathname is an empty string
*   Errno::ENOTDIR - a component of the path prefix of the pathname in
    *sockaddr* is not a directory


### Windows Exceptions
On Windows systems the following system exceptions may be raised if the
call to *connect* fails:
*   Errno::ENETDOWN - the network is down
*   Errno::EADDRINUSE - the socket's local address is already in use
*   Errno::EINTR - the socket was cancelled
*   Errno::EINPROGRESS - a blocking socket is in progress or the service
    provider is still processing a callback function. Or a nonblocking
    connect call is in progress on the `socket`.
*   Errno::EALREADY - see Errno::EINVAL
*   Errno::EADDRNOTAVAIL - the remote address is not a valid address,
    such as ADDR_ANY TODO check ADDRANY TO INADDR_ANY
*   Errno::EAFNOSUPPORT - addresses in the specified family cannot be
    used with with this `socket`
*   Errno::ECONNREFUSED - the target *sockaddr* was not listening for
    connections refused the connection request
*   Errno::EFAULT - the socket's internal address or address length
    parameter is too small or is not a valid part of the user space
    address
*   Errno::EINVAL - the `socket` is a listening socket
*   Errno::EISCONN - the `socket` is already connected
*   Errno::ENETUNREACH - the network cannot be reached from this host at
    this time
*   Errno::EHOSTUNREACH - no route to the network is present
*   Errno::ENOBUFS - no buffer space is available
*   Errno::ENOTSOCK - the `socket` argument does not refer to a socket
*   Errno::ETIMEDOUT - the attempt to connect timed out before a
    connection was made.
*   Errno::EWOULDBLOCK - the socket is marked as nonblocking and the
    connection cannot be completed immediately
*   Errno::EACCES - the attempt to connect the datagram socket to the
    broadcast address failed


### See
*   connect manual pages on unix-based systems
*   connect function in Microsoft's Winsock functions reference




      

This is MURDOC! A Ruby documentation browser inspired by Smalltalk-80. It allows you to learn about Ruby by browsing through its class hierarchies, and see any of its methods.