This is a Ruby tree! It shows every object from the Ruby Programming Language in a tree format.
# 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.