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

bind

        # Socket.bind

(from ruby core)
---
    socket.bind(local_sockaddr) => 0

---

Binds to the given local address.

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


### Example
    require 'socket'

    # use Addrinfo
    socket = Socket.new(:INET, :STREAM, 0)
    socket.bind(Addrinfo.tcp("127.0.0.1", 2222))
    p socket.local_address #=> #<Addrinfo: 127.0.0.1:2222 TCP>

    # use struct sockaddr
    include Socket::Constants
    socket = Socket.new( AF_INET, SOCK_STREAM, 0 )
    sockaddr = Socket.pack_sockaddr_in( 2200, 'localhost' )
    socket.bind( sockaddr )

### Unix-based Exceptions
On unix-based based systems the following system exceptions may be
raised if the call to *bind* fails:
*   Errno::EACCES - the specified *sockaddr* is protected and the
    current user does not have permission to bind to it
*   Errno::EADDRINUSE - the specified *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 family of the calling `socket`
*   Errno::EBADF - the *sockaddr* specified is not a valid file
    descriptor
*   Errno::EFAULT - the *sockaddr* argument cannot be accessed
*   Errno::EINVAL - the `socket` is already bound to an address, and the
    protocol does not support binding to the new *sockaddr* or the
    `socket` has been shut down.
*   Errno::EINVAL - the address length is not a valid length for the
    address family
*   Errno::ENAMETOOLONG - the pathname resolved had a length which
    exceeded PATH_MAX
*   Errno::ENOBUFS - no buffer space is available
*   Errno::ENOSR - there were insufficient STREAMS resources available
    to complete the operation
*   Errno::ENOTSOCK - the `socket` does not refer to a socket
*   Errno::EOPNOTSUPP - the socket type of the `socket` does not support
    binding to an address


On unix-based based systems if the address family of the calling
`socket` is Socket::AF_UNIX the follow exceptions may be raised if the
call to *bind* fails:
*   Errno::EACCES - search permission is denied for a component of the
    prefix path or write access to the `socket` is denied
*   Errno::EDESTADDRREQ - the *sockaddr* argument is a null pointer
*   Errno::EISDIR - same as Errno::EDESTADDRREQ
*   Errno::EIO - an i/o error occurred
*   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
*   Errno::EROFS - the name would reside on a read only filesystem


### Windows Exceptions
On Windows systems the following system exceptions may be raised if the
call to *bind* fails:
*   Errno::ENETDOWN-- the network is down
*   Errno::EACCES - the attempt to connect the datagram socket to the
    broadcast address failed
*   Errno::EADDRINUSE - the socket's local address is already in use
*   Errno::EADDRNOTAVAIL - the specified address is not a valid address
    for this computer
*   Errno::EFAULT - the socket's internal address or address length
    parameter is too small or is not a valid part of the user space
    addressed
*   Errno::EINVAL - the `socket` is already bound to an address
*   Errno::ENOBUFS - no buffer space is available
*   Errno::ENOTSOCK - the `socket` argument does not refer to a socket


### See
*   bind manual pages on unix-based systems
*   bind 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.