This is a Ruby tree! It shows every object from the Ruby Programming Language in a tree format.
# Socket < BasicSocket (from ruby core) --- Class `Socket` provides access to the underlying operating system socket implementations. It can be used to provide more operating system specific functionality than the protocol-specific socket classes. The constants defined under Socket::Constants are also defined under Socket. For example, Socket::AF_INET is usable as well as Socket::Constants::AF_INET. See Socket::Constants for the list of constants. ### What's a socket? Sockets are endpoints of a bidirectional communication channel. Sockets can communicate within a process, between processes on the same machine or between different machines. There are many types of socket: TCPSocket, UDPSocket or UNIXSocket for example. Sockets have their own vocabulary: **domain:** The family of protocols: * Socket::PF_INET * Socket::PF_INET6 * Socket::PF_UNIX * etc. **type:** The type of communications between the two endpoints, typically * Socket::SOCK_STREAM * Socket::SOCK_DGRAM. **protocol:** Typically *zero*. This may be used to identify a variant of a protocol. **hostname:** The identifier of a network interface: * a string (hostname, IPv4 or IPv6 address or `broadcast` which specifies a broadcast address) * a zero-length string which specifies INADDR_ANY * an integer (interpreted as binary address in host byte order). ### Quick start Many of the classes, such as TCPSocket, UDPSocket or UNIXSocket, ease the use of sockets comparatively to the equivalent C programming interface. Let's create an internet socket using the IPv4 protocol in a C-like manner: require 'socket' s = Socket.new Socket::AF_INET, Socket::SOCK_STREAM s.connect Socket.pack_sockaddr_in(80, 'example.com') You could also use the TCPSocket class: s = TCPSocket.new 'example.com', 80 A simple server might look like this: require 'socket' server = TCPServer.new 2000 # Server bound to port 2000 loop do client = server.accept # Wait for a client to connect client.puts "Hello !" client.puts "Time is #{Time.now}" client.close end A simple client may look like this: require 'socket' s = TCPSocket.new 'localhost', 2000 while line = s.gets # Read lines from socket puts line # and print them end s.close # close socket when done ### Exception Handling Ruby's Socket implementation raises exceptions based on the error generated by the system dependent implementation. This is why the methods are documented in a way that isolate Unix-based system exceptions from Windows based exceptions. If more information on a particular exception is needed, please refer to the Unix manual pages or the Windows WinSock reference. ### Convenience methods Although the general way to create socket is Socket.new, there are several methods of socket creation for most cases. TCP client socket : Socket.tcp, TCPSocket.open TCP server socket : Socket.tcp_server_loop, TCPServer.open UNIX client socket : Socket.unix, UNIXSocket.open UNIX server socket : Socket.unix_server_loop, UNIXServer.open ### Documentation by * Zach Dennis * Sam Roberts * *Programming Ruby* from The Pragmatic Bookshelf. Much material in this documentation is taken with permission from *Programming Ruby* from The Pragmatic Bookshelf. --- # Constants: AF_ALG : Interface to kernel crypto API AF_APPLETALK : AppleTalk protocol AF_ATM : Asynchronous Transfer Mode AF_AX25 : AX.25 protocol AF_BLUETOOTH : Bluetooth low-level socket protocol AF_CAN : Controller Area Network automotive bus protocol AF_CCITT : CCITT (now ITU-T) protocols AF_CHAOS : MIT CHAOS protocols AF_CNT : Computer Network Technology AF_COIP : Connection-oriented IP AF_DATAKIT : Datakit protocol AF_DEC : DECnet protocol AF_DECnet : DECnet protocol AF_DLI : DEC Direct Data Link Interface protocol AF_E164 : CCITT (ITU-T) E.164 recommendation AF_ECMA : European Computer Manufacturers protocols AF_HYLINK : NSC Hyperchannel protocol AF_IB : InfiniBand native addressing AF_IMPLINK : ARPANET IMP protocol AF_INET : IPv4 protocol AF_INET6 : IPv6 protocol AF_IPX : IPX protocol AF_ISDN : Integrated Services Digital Network AF_ISO : ISO Open Systems Interconnection protocols AF_KCM : KCM (kernel connection multiplexor) interface AF_KEY : Key management protocol, originally developed for usage with IPsec AF_LAT : Local Area Transport protocol AF_LINK : Link layer interface AF_LLC : Logical link control (IEEE 802.2 LLC) protocol AF_LOCAL : Host-internal protocols AF_MAX : Maximum address family for this platform AF_MPLS : Multiprotocol Label Switching AF_NATM : Native ATM access AF_NDRV : Network driver raw access AF_NETBIOS : NetBIOS AF_NETGRAPH : Netgraph sockets AF_NETLINK : Kernel user interface device AF_NS : XEROX NS protocols AF_OSI : ISO Open Systems Interconnection protocols AF_PACKET : Direct link-layer access AF_PPP : Point-to-Point Protocol AF_PPPOX : Generic PPP transport layer, for setting up L2 tunnels (L2TP and PPPoE) AF_PUP : PARC Universal Packet protocol AF_RDS : Reliable Datagram Sockets (RDS) protocol AF_ROUTE : Internal routing protocol AF_SIP : Simple Internet Protocol AF_SNA : IBM SNA protocol AF_SYSTEM : [not documented] AF_TIPC : TIPC, "cluster domain sockets" protocol AF_UNIX : UNIX sockets AF_UNSPEC : Unspecified protocol, any supported address family AF_VSOCK : VSOCK (originally "VMWare VSockets") protocol for hypervisor-guest communication AF_XDP : XDP (express data path) interface AI_ADDRCONFIG : Accept only if any address is assigned AI_ALL : Allow all addresses AI_CANONNAME : Fill in the canonical name AI_DEFAULT : Default flags for getaddrinfo AI_MASK : Valid flag mask for getaddrinfo (not for application use) AI_NUMERICHOST : Prevent host name resolution AI_NUMERICSERV : Prevent service name resolution AI_PASSIVE : Get address to use with bind() AI_V4MAPPED : Accept IPv4-mapped IPv6 addresses AI_V4MAPPED_CFG : Accept IPv4 mapped addresses if the kernel supports it EAI_ADDRFAMILY : Address family for hostname not supported EAI_AGAIN : Temporary failure in name resolution EAI_BADFLAGS : Invalid flags EAI_BADHINTS : Invalid value for hints EAI_FAIL : Non-recoverable failure in name resolution EAI_FAMILY : Address family not supported EAI_MAX : Maximum error code from getaddrinfo EAI_MEMORY : Memory allocation failure EAI_NODATA : No address associated with hostname EAI_NONAME : Hostname nor servname, or not known EAI_OVERFLOW : Argument buffer overflow EAI_PROTOCOL : Resolved protocol is unknown EAI_SERVICE : Servname not supported for socket type EAI_SOCKTYPE : Socket type not supported EAI_SYSTEM : System error returned in errno IFF_802_1Q_VLAN : 802.1Q VLAN device IFF_ALLMULTI : receive all multicast packets IFF_ALTPHYS : use alternate physical connection IFF_AUTOMEDIA : auto media select active IFF_BONDING : bonding master or slave IFF_BRIDGE_PORT : device used as bridge port IFF_BROADCAST : broadcast address valid IFF_CANTCHANGE : flags not changeable IFF_CANTCONFIG : unconfigurable using ioctl(2) IFF_DEBUG : turn on debugging IFF_DISABLE_NETPOLL : disable netpoll at run-time IFF_DONT_BRIDGE : disallow bridging this ether dev IFF_DORMANT : driver signals dormant IFF_DRV_OACTIVE : tx hardware queue is full IFF_DRV_RUNNING : resources allocated IFF_DYING : interface is winding down IFF_DYNAMIC : dialup device with changing addresses IFF_EBRIDGE : ethernet bridging device IFF_ECHO : echo sent packets IFF_ISATAP : ISATAP interface (RFC4214) IFF_LINK0 : per link layer defined bit 0 IFF_LINK1 : per link layer defined bit 1 IFF_LINK2 : per link layer defined bit 2 IFF_LIVE_ADDR_CHANGE : hardware address change when it's running IFF_LOOPBACK : loopback net IFF_LOWER_UP : driver signals L1 up IFF_MACVLAN_PORT : device used as macvlan port IFF_MASTER : master of a load balancer IFF_MASTER_8023AD : bonding master, 802.3ad. IFF_MASTER_ALB : bonding master, balance-alb. IFF_MASTER_ARPMON : bonding master, ARP mon in use IFF_MONITOR : user-requested monitor mode IFF_MULTICAST : supports multicast IFF_NOARP : no address resolution protocol IFF_NOTRAILERS : avoid use of trailers IFF_OACTIVE : transmission in progress IFF_OVS_DATAPATH : device used as Open vSwitch datapath port IFF_POINTOPOINT : point-to-point link IFF_PORTSEL : can set media type IFF_PPROMISC : user-requested promisc mode IFF_PROMISC : receive all packets IFF_RENAMING : interface is being renamed IFF_ROUTE : routing entry installed IFF_RUNNING : resources allocated IFF_SIMPLEX : can't hear own transmissions IFF_SLAVE : slave of a load balancer IFF_SLAVE_INACTIVE : bonding slave not the curr. active IFF_SLAVE_NEEDARP : need ARPs for validation IFF_SMART : interface manages own routes IFF_STATICARP : static ARP IFF_SUPP_NOFCS : sending custom FCS IFF_TEAM_PORT : used as team port IFF_TX_SKB_SHARING : sharing skbs on transmit IFF_UNICAST_FLT : unicast filtering IFF_UP : interface is up IFF_VOLATILE : volatile flags IFF_WAN_HDLC : WAN HDLC device IFF_XMIT_DST_RELEASE : dev_hard_start_xmit() is allowed to release skb->dst IFNAMSIZ : Maximum interface name size IF_NAMESIZE : Maximum interface name size INADDR_ALLHOSTS_GROUP : Multicast group for all systems on this subset INADDR_ANY : A socket bound to INADDR_ANY receives packets from all interfaces and sends from the default IP address INADDR_BROADCAST : The network broadcast address INADDR_LOOPBACK : The loopback address INADDR_MAX_LOCAL_GROUP : The last local network multicast group INADDR_NONE : A bitmask for matching no valid IP address INADDR_UNSPEC_GROUP : The reserved multicast group INET6_ADDRSTRLEN : Maximum length of an IPv6 address string INET_ADDRSTRLEN : Maximum length of an IPv4 address string IPPORT_RESERVED : Default minimum address for bind or connect IPPORT_USERRESERVED : Default maximum address for bind or connect IPPROTO_AH : IP6 auth header IPPROTO_BIP : [not documented] IPPROTO_DSTOPTS : IP6 destination option IPPROTO_EGP : Exterior Gateway Protocol IPPROTO_EON : ISO cnlp IPPROTO_ESP : IP6 Encapsulated Security Payload IPPROTO_FRAGMENT : IP6 fragmentation header IPPROTO_GGP : Gateway to Gateway Protocol IPPROTO_HELLO : "hello" routing protocol IPPROTO_HOPOPTS : IP6 hop-by-hop options IPPROTO_ICMP : Control message protocol IPPROTO_ICMPV6 : ICMP6 IPPROTO_IDP : XNS IDP IPPROTO_IGMP : Group Management Protocol IPPROTO_IP : Dummy protocol for IP IPPROTO_IPV6 : IP6 header IPPROTO_MAX : Maximum IPPROTO constant IPPROTO_ND : Sun net disk protocol IPPROTO_NONE : IP6 no next header IPPROTO_PUP : PARC Universal Packet protocol IPPROTO_RAW : Raw IP packet IPPROTO_ROUTING : IP6 routing header IPPROTO_TCP : TCP IPPROTO_TP : ISO transport protocol class 4 IPPROTO_UDP : UDP IPPROTO_XTP : Xpress Transport Protocol IPV6_CHECKSUM : Checksum offset for raw sockets IPV6_DONTFRAG : Don't fragment packets IPV6_DSTOPTS : Destination option IPV6_HOPLIMIT : Hop limit IPV6_HOPOPTS : Hop-by-hop option IPV6_JOIN_GROUP : Join a group membership IPV6_LEAVE_GROUP : Leave a group membership IPV6_MULTICAST_HOPS : IP6 multicast hops IPV6_MULTICAST_IF : IP6 multicast interface IPV6_MULTICAST_LOOP : IP6 multicast loopback IPV6_NEXTHOP : Next hop address IPV6_PATHMTU : Retrieve current path MTU IPV6_PKTINFO : Receive packet information with datagram IPV6_RECVDSTOPTS : Receive all IP6 options for response IPV6_RECVHOPLIMIT : Receive hop limit with datagram IPV6_RECVHOPOPTS : Receive hop-by-hop options IPV6_RECVPATHMTU : Receive current path MTU with datagram IPV6_RECVPKTINFO : Receive destination IP address and incoming interface IPV6_RECVRTHDR : Receive routing header IPV6_RECVTCLASS : Receive traffic class IPV6_RTHDR : Allows removal of sticky routing headers IPV6_RTHDRDSTOPTS : Allows removal of sticky destination options header IPV6_RTHDR_TYPE_0 : Routing header type 0 IPV6_TCLASS : Specify the traffic class IPV6_UNICAST_HOPS : IP6 unicast hops IPV6_USE_MIN_MTU : Use the minimum MTU size IPV6_V6ONLY : Only bind IPv6 with a wildcard bind IPX_TYPE : [not documented] IP_ADD_MEMBERSHIP : Add a multicast group membership IP_ADD_SOURCE_MEMBERSHIP : Add a multicast group membership IP_BLOCK_SOURCE : Block IPv4 multicast packets with a give source address IP_DEFAULT_MULTICAST_LOOP : Default multicast loopback IP_DEFAULT_MULTICAST_TTL : Default multicast TTL IP_DONTFRAG : Don't fragment packets IP_DROP_MEMBERSHIP : Drop a multicast group membership IP_DROP_SOURCE_MEMBERSHIP : Drop a multicast group membership IP_FREEBIND : Allow binding to nonexistent IP addresses IP_HDRINCL : Header is included with data IP_IPSEC_POLICY : IPsec security policy IP_MAX_MEMBERSHIPS : Maximum number multicast groups a socket can join IP_MINTTL : Minimum TTL allowed for received packets IP_MSFILTER : Multicast source filtering IP_MTU : The Maximum Transmission Unit of the socket IP_MTU_DISCOVER : Path MTU discovery IP_MULTICAST_IF : IP multicast interface IP_MULTICAST_LOOP : IP multicast loopback IP_MULTICAST_TTL : IP multicast TTL IP_ONESBCAST : Force outgoing broadcast datagrams to have the undirected broadcast address IP_OPTIONS : IP options to be included in packets IP_PASSSEC : Retrieve security context with datagram IP_PKTINFO : Receive packet information with datagrams IP_PKTOPTIONS : Receive packet options with datagrams IP_PMTUDISC_DO : Always send DF frames IP_PMTUDISC_DONT : Never send DF frames IP_PMTUDISC_WANT : Use per-route hints IP_PORTRANGE : Set the port range for sockets with unspecified port numbers IP_RECVDSTADDR : Receive IP destination address with datagram IP_RECVERR : Enable extended reliable error message passing IP_RECVIF : Receive interface information with datagrams IP_RECVOPTS : Receive all IP options with datagram IP_RECVRETOPTS : Receive all IP options for response IP_RECVSLLA : Receive link-layer address with datagrams IP_RECVTOS : Receive TOS with incoming packets IP_RECVTTL : Receive IP TTL with datagrams IP_RETOPTS : IP options to be included in datagrams IP_ROUTER_ALERT : Notify transit routers to more closely examine the contents of an IP packet IP_SENDSRCADDR : Source address for outgoing UDP datagrams IP_TOS : IP type-of-service IP_TRANSPARENT : Transparent proxy IP_TTL : IP time-to-live IP_UNBLOCK_SOURCE : Unblock IPv4 multicast packets with a give source address IP_XFRM_POLICY : [not documented] LOCAL_CONNWAIT : Connect blocks until accepted LOCAL_CREDS : Pass credentials to receiver LOCAL_PEERCRED : Retrieve peer credentials MCAST_BLOCK_SOURCE : Block multicast packets from this source MCAST_EXCLUDE : Exclusive multicast source filter MCAST_INCLUDE : Inclusive multicast source filter MCAST_JOIN_GROUP : Join a multicast group MCAST_JOIN_SOURCE_GROUP : Join a multicast source group MCAST_LEAVE_GROUP : Leave a multicast group MCAST_LEAVE_SOURCE_GROUP : Leave a multicast source group MCAST_MSFILTER : Multicast source filtering MCAST_UNBLOCK_SOURCE : Unblock multicast packets from this source MSG_COMPAT : End of record MSG_CONFIRM : Confirm path validity MSG_CTRUNC : Control data lost before delivery MSG_DONTROUTE : Send without using the routing tables MSG_DONTWAIT : This message should be non-blocking MSG_EOF : Data completes connection MSG_EOR : Data completes record MSG_ERRQUEUE : Fetch message from error queue MSG_FASTOPEN : Reduce step of the handshake process MSG_FIN : [not documented] MSG_FLUSH : Start of a hold sequence. Dumps to so_temp MSG_HAVEMORE : Data ready to be read MSG_HOLD : Hold fragment in so_temp MSG_MORE : Sender will send more MSG_NOSIGNAL : Do not generate SIGPIPE MSG_OOB : Process out-of-band data MSG_PEEK : Peek at incoming message MSG_PROXY : Wait for full request MSG_RCVMORE : Data remains in the current packet MSG_RST : [not documented] MSG_SEND : Send the packet in so_temp MSG_SYN : [not documented] MSG_TRUNC : Data discarded before delivery MSG_WAITALL : Wait for full request or error NI_DGRAM : The service specified is a datagram service (looks up UDP ports) NI_MAXHOST : Maximum length of a hostname NI_MAXSERV : Maximum length of a service name NI_NAMEREQD : A name is required NI_NOFQDN : An FQDN is not required for local hosts, return only the local part NI_NUMERICHOST : Return a numeric address NI_NUMERICSERV : Return the service name as a digit string PF_ALG : Interface to kernel crypto API PF_APPLETALK : AppleTalk protocol PF_ATM : Asynchronous Transfer Mode PF_AX25 : AX.25 protocol PF_BLUETOOTH : Bluetooth low-level socket protocol PF_CAN : Controller Area Network automotive bus protocol PF_CCITT : CCITT (now ITU-T) protocols PF_CHAOS : MIT CHAOS protocols PF_CNT : Computer Network Technology PF_COIP : Connection-oriented IP PF_DATAKIT : Datakit protocol PF_DEC : DECnet protocol PF_DECnet : DECnet protocol PF_DLI : DEC Direct Data Link Interface protocol PF_ECMA : European Computer Manufacturers protocols PF_HYLINK : NSC Hyperchannel protocol PF_IB : InfiniBand native addressing PF_IMPLINK : ARPANET IMP protocol PF_INET : IPv4 protocol PF_INET6 : IPv6 protocol PF_IPX : IPX protocol PF_ISDN : Integrated Services Digital Network PF_ISO : ISO Open Systems Interconnection protocols PF_KCM : KCM (kernel connection multiplexor) interface PF_KEY : Key management protocol, originally developed for usage with IPsec PF_LAT : Local Area Transport protocol PF_LINK : Link layer interface PF_LLC : Logical link control (IEEE 802.2 LLC) protocol PF_LOCAL : Host-internal protocols PF_MAX : Maximum address family for this platform PF_MPLS : Multiprotocol Label Switching PF_NATM : Native ATM access PF_NDRV : Network driver raw access PF_NETBIOS : NetBIOS PF_NETGRAPH : Netgraph sockets PF_NETLINK : Kernel user interface device PF_NS : XEROX NS protocols PF_OSI : ISO Open Systems Interconnection protocols PF_PACKET : Direct link-layer access PF_PIP : [not documented] PF_PPP : Point-to-Point Protocol PF_PPPOX : Generic PPP transport layer, for setting up L2 tunnels (L2TP and PPPoE) PF_PUP : PARC Universal Packet protocol PF_RDS : Reliable Datagram Sockets (RDS) protocol PF_ROUTE : Internal routing protocol PF_RTIP : [not documented] PF_SIP : Simple Internet Protocol PF_SNA : IBM SNA protocol PF_SYSTEM : [not documented] PF_TIPC : TIPC, "cluster domain sockets" protocol PF_UNIX : UNIX sockets PF_UNSPEC : Unspecified protocol, any supported address family PF_VSOCK : VSOCK (originally "VMWare VSockets") protocol for hypervisor-guest communication PF_XDP : XDP (express data path) interface PF_XTP : eXpress Transfer Protocol SCM_BINTIME : Timestamp (bintime) SCM_CREDENTIALS : The sender's credentials SCM_CREDS : Process credentials SCM_RIGHTS : Access rights SCM_TIMESTAMP : Timestamp (timeval) SCM_TIMESTAMPING : Timestamp (timespec list) (Linux 2.6.30) SCM_TIMESTAMPNS : Timespec (timespec) SCM_UCRED : User credentials SCM_WIFI_STATUS : Wifi status (Linux 3.3) SHUT_RD : Shut down the reading side of the socket SHUT_RDWR : Shut down the both sides of the socket SHUT_WR : Shut down the writing side of the socket SOCK_CLOEXEC : Set the close-on-exec (FD_CLOEXEC) flag on the new file descriptor. SOCK_DGRAM : A datagram socket provides connectionless, unreliable messaging SOCK_NONBLOCK : Set the O_NONBLOCK file status flag on the open file description (see open(2)) referred to by the new file descriptor. SOCK_PACKET : Device-level packet access SOCK_RAW : A raw socket provides low-level access for direct access or implementing network protocols SOCK_RDM : A reliable datagram socket provides reliable delivery of messages SOCK_SEQPACKET : A sequential packet socket provides sequenced, reliable two-way connection for datagrams SOCK_STREAM : A stream socket provides a sequenced, reliable two-way connection for a byte stream SOL_ATALK : AppleTalk socket options SOL_AX25 : AX.25 socket options SOL_IP : IP socket options SOL_IPX : IPX socket options SOL_SOCKET : Socket-level options SOL_TCP : TCP socket options SOL_UDP : UDP socket options SOMAXCONN : Maximum connection requests that may be queued for a socket SOPRI_BACKGROUND : Background socket priority SOPRI_INTERACTIVE : Interactive socket priority SOPRI_NORMAL : Normal socket priority SO_ACCEPTCONN : Socket has had listen() called on it SO_ACCEPTFILTER : There is an accept filter SO_ALLZONES : Bypass zone boundaries SO_ATTACH_FILTER : Attach an accept filter SO_BINDTODEVICE : Only send packets from the given interface SO_BINTIME : Receive timestamp with datagrams (bintime) SO_BPF_EXTENSIONS : Query supported BPF extensions (Linux 3.14) SO_BROADCAST : Permit sending of broadcast messages SO_BUSY_POLL : Set the threshold in microseconds for low latency polling (Linux 3.11) SO_DEBUG : Debug info recording SO_DETACH_FILTER : Detach an accept filter SO_DOMAIN : Domain given for socket() (Linux 2.6.32) SO_DONTROUTE : Use interface addresses SO_DONTTRUNC : Retain unread data SO_ERROR : Get and clear the error status SO_GET_FILTER : Obtain filter set by SO_ATTACH_FILTER (Linux 3.8) SO_KEEPALIVE : Keep connections alive SO_LINGER : Linger on close if data is present SO_LOCK_FILTER : Lock the filter attached to a socket (Linux 3.9) SO_MAC_EXEMPT : Mandatory Access Control exemption for unlabeled peers SO_MARK : Set the mark for mark-based routing (Linux 2.6.25) SO_MAX_PACING_RATE : Cap the rate computed by transport layer. [bytes per second] (Linux 3.13) SO_NKE : Install socket-level Network Kernel Extension SO_NOFCS : Set netns of a socket (Linux 3.4) SO_NOSIGPIPE : Don't SIGPIPE on EPIPE SO_NO_CHECK : Disable checksums SO_NREAD : Get first packet byte count SO_OOBINLINE : Leave received out-of-band data in-line SO_PASSCRED : Receive SCM_CREDENTIALS messages SO_PASSSEC : Toggle security context passing (Linux 2.6.18) SO_PEEK_OFF : Set the peek offset (Linux 3.4) SO_PEERCRED : The credentials of the foreign process connected to this socket SO_PEERNAME : Name of the connecting user SO_PEERSEC : Obtain the security credentials (Linux 2.6.2) SO_PRIORITY : The protocol-defined priority for all packets on this socket SO_PROTOCOL : Protocol given for socket() (Linux 2.6.32) SO_RCVBUF : Receive buffer size SO_RCVBUFFORCE : Receive buffer size without rmem_max limit (Linux 2.6.14) SO_RCVLOWAT : Receive low-water mark SO_RCVTIMEO : Receive timeout SO_RECVUCRED : Receive user credentials with datagram SO_REUSEADDR : Allow local address reuse SO_REUSEPORT : Allow local address and port reuse SO_RXQ_OVFL : Toggle cmsg for number of packets dropped (Linux 2.6.33) SO_SECURITY_AUTHENTICATION : [not documented] SO_SECURITY_ENCRYPTION_NETWORK : [not documented] SO_SECURITY_ENCRYPTION_TRANSPORT : [not documented] SO_SELECT_ERR_QUEUE : Make select() detect socket error queue with errorfds (Linux 3.10) SO_SNDBUF : Send buffer size SO_SNDBUFFORCE : Send buffer size without wmem_max limit (Linux 2.6.14) SO_SNDLOWAT : Send low-water mark SO_SNDTIMEO : Send timeout SO_TIMESTAMP : Receive timestamp with datagrams (timeval) SO_TIMESTAMPING : Time stamping of incoming and outgoing packets (Linux 2.6.30) SO_TIMESTAMPNS : Receive nanosecond timestamp with datagrams (timespec) SO_TYPE : Get the socket type SO_USELOOPBACK : Bypass hardware when possible SO_WANTMORE : Give a hint when more data is ready SO_WANTOOBFLAG : OOB data is wanted in MSG_FLAG on receive SO_WIFI_STATUS : Toggle cmsg for wifi status (Linux 3.3) TCP_CONGESTION : TCP congestion control algorithm (Linux 2.6.13, glibc 2.6) TCP_COOKIE_TRANSACTIONS : TCP Cookie Transactions (Linux 2.6.33, glibc 2.18) TCP_CORK : Don't send partial frames (Linux 2.2, glibc 2.2) TCP_DEFER_ACCEPT : Don't notify a listening socket until data is ready (Linux 2.4, glibc 2.2) TCP_FASTOPEN : Reduce step of the handshake process (Linux 3.7, glibc 2.18) TCP_INFO : Retrieve information about this socket (Linux 2.4, glibc 2.2) TCP_KEEPCNT : Maximum number of keepalive probes allowed before dropping a connection (Linux 2.4, glibc 2.2) TCP_KEEPIDLE : Idle time before keepalive probes are sent (Linux 2.4, glibc 2.2) TCP_KEEPINTVL : Time between keepalive probes (Linux 2.4, glibc 2.2) TCP_LINGER2 : Lifetime of orphaned FIN_WAIT2 sockets (Linux 2.4, glibc 2.2) TCP_MAXSEG : Set maximum segment size TCP_MD5SIG : Use MD5 digests (RFC2385, Linux 2.6.20, glibc 2.7) TCP_NODELAY : Don't delay sending to coalesce packets TCP_NOOPT : Don't use TCP options TCP_NOPUSH : Don't push the last block of write TCP_QUEUE_SEQ : Sequence of a queue for repair mode (Linux 3.5, glibc 2.18) TCP_QUICKACK : Enable quickack mode (Linux 2.4.4, glibc 2.3) TCP_REPAIR : Repair mode (Linux 3.5, glibc 2.18) TCP_REPAIR_OPTIONS : Options for repair mode (Linux 3.5, glibc 2.18) TCP_REPAIR_QUEUE : Queue for repair mode (Linux 3.5, glibc 2.18) TCP_SYNCNT : Number of SYN retransmits before a connection is dropped (Linux 2.4, glibc 2.2) TCP_THIN_DUPACK : Duplicated acknowledgments handling for thin-streams (Linux 2.6.34, glibc 2.18) TCP_THIN_LINEAR_TIMEOUTS : Linear timeouts for thin-streams (Linux 2.6.34, glibc 2.18) TCP_TIMESTAMP : TCP timestamp (Linux 3.9, glibc 2.18) TCP_USER_TIMEOUT : Max timeout before a TCP connection is aborted (Linux 2.6.37, glibc 2.18) TCP_WINDOW_CLAMP : Clamp the size of the advertised window (Linux 2.4, glibc 2.2) UDP_CORK : Don't send partial frames (Linux 2.5.44, glibc 2.11) # Class methods: accept_loop getaddrinfo gethostbyaddr gethostbyname gethostname getifaddrs getnameinfo getservbyname getservbyport ip_address_list new pack_sockaddr_in pack_sockaddr_un pair sockaddr_in sockaddr_un socketpair tcp tcp_server_loop tcp_server_sockets udp_server_loop udp_server_loop_on udp_server_recv udp_server_sockets unix unix_server_loop unix_server_socket unix_socket_abstract_name? unpack_sockaddr_in unpack_sockaddr_un # Instance methods: accept accept_nonblock bind connect connect_nonblock ipv6only! listen recvfrom recvfrom_nonblock sysaccept
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.