chickadee » socket » socket?

socket family type #!optional (protocol 0)procedure
socket? soprocedure
socket-fileno soprocedure
socket-family soprocedure
socket-type soprocedure
socket-protocol soprocedure

Socket objects. You construct a socket using the socket procedure, passing an address family af/* constant for family (IPv4, IPv6) and a socket type sock/* constant for socket type (TCP, UDP). protocol should almost always be zero, unless you are creating raw sockets; it is implicit in the socket type. Sockets take up a file descriptor in the system until closed, which may or may not happen automatically on error. All sockets are created in non-blocking mode.


The socket's file descriptor.
The socket family, an integer constant.
The socket type, an integer constant.
The socket protocol, an integer constant.

Note that sockets are also implicitly created by socket-connect/ai and socket-accept.


(socket af/inet sock/stream)
  ; => #<socket fd:19 af/inet sock/stream>
(socket af/inet6 sock/dgram)
  ; => #<socket fd:20 af/inet6 sock/dgram>