connect
 
  connect(p1)
  public
  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 time 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 time 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 

 RSpec
RSpec Ruby on Rails
Ruby on Rails Ruby
Ruby 
   
   
   
    
 
   
   = protected
 = protected
  