The usocket Reference Manual
Table of Contents
The usocket Reference Manual
This is the usocket Reference Manual, version 0.8.3,
generated automatically by Declt version 3.0 "Montgomery Scott"
on Tue Dec 22 15:25:25 2020 GMT+0.
1 Introduction
USOCKET - Universal socket library for Common Lisp
https://common-lisp.net/project/usocket/
This is the usocket Common Lisp sockets library: a library to bring
sockets access to the broadest of common lisp implementations as possible.
The library currently supports:
- Allegro CL
- ABCL (ArmedBear)
- Clasp
- Clozure CL
- Corman Lisp
- GNU CLISP
- CMUCL
- ECL
- LispWorks (4.3 and up)
- Digitool MCL and RMCL (5.0 and up)
- Mezzano
- MOCL
- SBCL
- Scieneer CL
- Symbolics Lisp Machine (Genera)
If your favorite common lisp misses in the list above, please contact
usocket-devel@common-lisp.net and submit a request. Please include
references to available sockets functions in your lisp implementation.
The library has been ASDF (http://cliki.net/ASDF) enabled, meaning
that you can tar up a checkout and use that to ASDF-INSTALL:INSTALL
the package in your system package site. (Or use your usual ASDF
tricks to use the checkout directly.)
Remarks on licensing
Even though the source code has an MIT style license attached to it,
when compiling this code with some of the supported lisp implementations
you may not end up with an MIT style binary version due to the licensing
of the implementations themselves. ECL is such an example and - when
it will become supported - GCL is like that too.
Non-support of :external-format
Because of its definition in the hyperspec, there's no common
external-format between lisp implementations: every vendor has chosen
a different way to solve the problem of newline translation or
character set recoding.
Because there's no way to avoid platform specific code in the application
when using external-format, the purpose of a portability layer gets
defeated. So, for now, usocket doesn't support external-format.
The workaround to get reasonably portable external-format support is to
layer a flexi-stream (from flexi-streams) on top of a usocket stream.
API definition
- usocket (class)
- stream-usocket (class; usocket derivative)
- stream-server-usocket (class; usocket derivative)
- socket-connect (function) [ to create an active/connected socket ]
socket-connect host port &key element-type
where `host' is a vectorized ip
or a string representation of a dotted ip address
or a hostname for lookup in the DNS system
- socket-listen (function) [ to create a passive/listening socket ]
socket-listen host port &key reuseaddress backlog element-type
where `host' has the same definition as above
- socket-accept (method) [ to create an active/connected socket ]
socket-accept socket &key element-type
returns (server side) a connected socket derived from a
listening/passive socket.
- socket-close (method)
socket-close socket
where socket a previously returned socket
- socket (usocket slot accessor),
the internal/implementation defined socket representation
- socket-stream (usocket slot accessor),
socket-stream socket
the return value of which satisfies the normal stream interface
- socket-shutdown
Errors:
- address-in-use-error
- address-not-available-error
- bad-file-descriptor-error
- connection-refused-error
- connection-aborted-error
- connection-reset-error
- invalid-argument-error
- no-buffers-error
- operation-not-supported-error
- operation-not-permitted-error
- protocol-not-supported-error
- socket-type-not-supported-error
- network-unreachable-error
- network-down-error
- network-reset-error
- host-down-error
- host-unreachable-error
- shutdown-error
- timeout-error
- unkown-error
Non-fatal conditions:
- interrupted-condition
- unkown-condition
(for a description of the API methods and functions see
https://common-lisp.net/project/usocket/api-docs.shtml)
Test suite
The test suite unfortunately isn't mature enough yet to run without
some manual configuration. Several elements are required which are
hard to programatically detect. Please adjust the test file before
running the tests, for these variables:
- +non-existing-host+: The stringified IP address of a host on the
same subnet. No physical host may be present.
- +unused-local-port+: A port number of a port not in use on the
machine the tests run on.
- +common-lisp-net+: A vector with 4 integer elements which make up
an IP address. This must be the IP "common-lisp.net" resolves to.
Known problems
-
CMUCL error reporting wrt sockets raises only simple-errors
meaning there's no way to tell different error conditions apart.
All errors are mapped to unknown-error on CMUCL.
-
The ArmedBear backend doesn't do any error mapping (yet). Java
defines exceptions at the wrong level (IMO), since the exception
reported bares a relation to the function failing, not the actual
error that occurred: for example 'Address already in use' (when
creating a passive socket) is reported as a BindException with
an error text of 'Address already in use'. There's no way to sanely
map 'BindException' to a meaningfull error in usocket. [This does not
mean the backend should not at least map to 'unknown-error'!]
-
When using the library with ECL, you need the C compiler installed
to be able to compile and load the Foreign Function Interface.
Not all ECL targets support DFFI yet, so on some targets this would
be the case anyway. By depending on this technique, usocket can
reuse the FFI code on all platforms (including Windows). This benefit
currently outweighs the additional requirement. (hey, it's Embeddable
Common Lisp, so, you probably wanted to embed it all along, right?)
2 Systems
The main system appears first, followed by any subsystem dependency.
2.1 usocket
- Maintainer
Chun Tian (binghe) & Hans Huebner
- Author
Erik Enge & Erik Huelsmann
- License
MIT
- Description
Universal socket library for Common Lisp
- Version
0.8.3
- Dependencies
- split-sequence
- sb-bsd-sockets
- Source
usocket.asd (file)
- Components
-
3 Modules
Modules are listed depth-first from the system components tree.
3.1 usocket/vendor
- Dependency
package.lisp (file)
- Parent
usocket (system)
- Location
vendor/
3.2 usocket/backend
- Dependency
condition.lisp (file)
- Parent
usocket (system)
- Location
backend/
- Component
sbcl.lisp (file)
4 Files
Files are sorted by type and then listed depth-first from the systems
components trees.
4.1 Lisp
4.1.1 usocket.asd
- Location
usocket.asd
- Systems
usocket (system)
4.1.2 usocket/package.lisp
- Parent
usocket (system)
- Location
package.lisp
- Packages
usocket
4.1.3 usocket/usocket.lisp
- Dependency
vendor (module)
- Parent
usocket (system)
- Location
usocket.lisp
- Exported Definitions
-
- Internal Definitions
-
4.1.4 usocket/condition.lisp
- Dependency
usocket.lisp (file)
- Parent
usocket (system)
- Location
condition.lisp
- Exported Definitions
-
- Internal Definitions
-
4.1.5 usocket/backend/sbcl.lisp
- Parent
backend (module)
- Location
backend/sbcl.lisp
- Exported Definitions
-
- Internal Definitions
-
4.1.6 usocket/option.lisp
- Dependency
backend (module)
- Parent
usocket (system)
- Location
option.lisp
- Exported Definitions
-
5 Packages
Packages are listed by definition order.
5.1 usocket
- Source
package.lisp (file)
- Use List
- split-sequence
- common-lisp
- Exported Definitions
-
- Internal Definitions
-
6 Definitions
Definitions are sorted by export status, category, package, and then by
lexicographic order.
6.1 Exported definitions
6.1.1 Constants
- Constant: +max-datagram-packet-size+
-
The theoretical maximum amount of data in a UDP datagram.
The IPv4 UDP packets have a 16-bit length constraint, and IP+UDP header has 28-byte.
IP_MAXPACKET = 65535, /* netinet/ip.h */
sizeof(struct ip) = 20, /* netinet/ip.h */
sizeof(struct udphdr) = 8, /* netinet/udp.h */
65535 - 20 - 8 = 65507
(But for UDP broadcast, the maximum message size is limited by the MTU size of the underlying link)
- Package
usocket
- Source
usocket.lisp (file)
6.1.2 Special variables
- Special Variable: *auto-port*
-
Port number to pass when an auto-assigned port number is wanted.
- Package
usocket
- Source
usocket.lisp (file)
- Special Variable: *backend*
-
- Package
usocket
- Source
option.lisp (file)
- Special Variable: *version*
-
usocket version string
- Package
usocket
- Source
usocket.lisp (file)
- Special Variable: *wildcard-host*
-
Hostname to pass when all interfaces in the current system are to
be bound. If this variable is passed to socket-listen, IPv6 capable
systems will also listen for IPv6 connections.
- Package
usocket
- Source
usocket.lisp (file)
6.1.3 Macros
- Macro: ip-from-octet-buffer BUFFER &key START
-
- Package
usocket
- Source
usocket.lisp (file)
- Macro: ip-to-octet-buffer IP BUFFER &key START
-
- Package
usocket
- Source
usocket.lisp (file)
- Macro: port-from-octet-buffer BUFFER &key START
-
- Package
usocket
- Source
usocket.lisp (file)
- Macro: port-to-octet-buffer PORT BUFFER &key START
-
- Package
usocket
- Source
usocket.lisp (file)
- Macro: unimplemented FEATURE CONTEXT
-
- Package
usocket
- Source
condition.lisp (file)
- Macro: unsupported FEATURE CONTEXT &key MINIMUM
-
- Package
usocket
- Source
condition.lisp (file)
- Macro: with-client-socket (SOCKET-VAR STREAM-VAR &rest SOCKET-CONNECT-ARGS) &body BODY
-
Bind the socket resulting from a call to ‘socket-connect’ with
the arguments ‘socket-connect-args’ to ‘socket-var’ and if ‘stream-var’ is
non-nil, bind the associated socket stream to it.
- Package
usocket
- Source
usocket.lisp (file)
- Macro: with-connected-socket (VAR SOCKET) &body BODY
-
Bind ‘socket’ to ‘var’, ensuring socket destruction on exit.
‘body’ is only evaluated when ‘var’ is bound to a non-null value.
The ‘body’ is an implied progn form.
- Package
usocket
- Source
usocket.lisp (file)
- Macro: with-mapped-conditions (&optional SOCKET HOST-OR-IP) &body BODY
-
- Package
usocket
- Source
condition.lisp (file)
- Macro: with-server-socket (VAR SERVER-SOCKET) &body BODY
-
Bind ‘server-socket’ to ‘var’, ensuring socket destruction on exit.
‘body’ is only evaluated when ‘var’ is bound to a non-null value.
The ‘body’ is an implied progn form.
- Package
usocket
- Source
usocket.lisp (file)
- Macro: with-socket-listener (SOCKET-VAR &rest SOCKET-LISTEN-ARGS) &body BODY
-
Bind the socket resulting from a call to ‘socket-listen’ with arguments
‘socket-listen-args’ to ‘socket-var’.
- Package
usocket
- Source
usocket.lisp (file)
6.1.4 Functions
- Function: add-waiter WAIT-LIST INPUT
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: datagram-usocket-p SOCKET
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: dotted-quad-to-vector-quad STRING
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: get-host-by-name NAME
-
0.7.1+: if there’re IPv4 addresses, return the first IPv4 address.
- Package
usocket
- Source
usocket.lisp (file)
- Function: get-hosts-by-name NAME
-
- Package
usocket
- Source
sbcl.lisp (file)
- Function: get-random-host-by-name NAME
-
0.7.1+: if there’re IPv4 addresses, only return a random IPv4 address.
- Package
usocket
- Source
usocket.lisp (file)
- Function: hbo-to-dotted-quad INTEGER
-
Host-byte-order integer to dotted-quad string conversion utility.
- Package
usocket
- Source
usocket.lisp (file)
- Function: hbo-to-vector-quad INTEGER
-
Host-byte-order integer to dotted-quad string conversion utility.
- Package
usocket
- Source
usocket.lisp (file)
- Function: host-to-hostname HOST
-
Translate a string, vector quad or 16 byte IPv6 address to a
stringified hostname.
- Package
usocket
- Source
usocket.lisp (file)
- Function: integer-to-octet-buffer INTEGER BUFFER OCTETS &key START
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: ip/= IP1 IP2
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: ip= IP1 IP2
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: ipv6-host-to-vector STRING
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: make-wait-list WAITERS
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: octet-buffer-to-integer BUFFER OCTETS &key START
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: remove-all-waiters WAIT-LIST
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: remove-waiter WAIT-LIST INPUT
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: socket-connect HOST PORT &key PROTOCOL ELEMENT-TYPE TIMEOUT DEADLINE NODELAY LOCAL-HOST LOCAL-PORT &aux SOCKOPT-TCP-NODELAY-P
-
Connect to ‘host’ on ‘port’. ‘host’ is assumed to be a string or
an IP address represented in vector notation, such as #(192 168 1 1).
‘port’ is assumed to be an integer.
‘element-type’ specifies the element type to use when constructing the
stream associated with the socket. The default is ’character.
‘nodelay’ Allows to disable/enable Nagle’s algorithm (http://en.wikipedia.org/wiki/Nagle%27s_algorithm).
If this parameter is omitted, the behaviour is inherited from the
CL implementation (in most cases, Nagle’s algorithm is
enabled by default, but for example in ACL it is disabled).
If the parameter is specified, one of these three values is possible:
T - Disable Nagle’s algorithm; signals an UNSUPPORTED
condition if the implementation does not support explicit
manipulation with that option.
NIL - Leave Nagle’s algorithm enabled on the socket;
signals an UNSUPPORTED condition if the implementation does
not support explicit manipulation with that option.
:IF-SUPPORTED - Disables Nagle’s algorithm if the implementation
allows this, otherwises just ignore this option.
Returns a usocket object.
- Package
usocket
- Source
sbcl.lisp (file)
- Function: socket-listen HOST PORT &key REUSEADDRESS REUSE-ADDRESS BACKLOG ELEMENT-TYPE
-
Bind to interface ‘host’ on ‘port’. ‘host’ should be the
representation of an ready-interface address. The implementation is
not required to do an address lookup, making no guarantees that
hostnames will be correctly resolved. If ‘*wildcard-host*’ or NIL is
passed for ‘host’, the socket will be bound to all available
interfaces for the system. ‘port’ can be selected by the IP stack by
passing ‘*auto-port*’.
Returns an object of type ‘stream-server-usocket’.
‘reuse-address’ and ‘backlog’ are advisory parameters for setting socket
options at creation time. ‘element-type’ is the element type of the
streams to be created by ‘socket-accept’. ‘reuseaddress’ is supported for
backward compatibility (but deprecated); when both ‘reuseaddress’ and
‘reuse-address’ have been specified, the latter takes precedence.
- Package
usocket
- Source
sbcl.lisp (file)
- Function: stream-server-usocket-p SOCKET
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: stream-usocket-p SOCKET
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: usocket-p SOCKET
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: vector-quad-to-dotted-quad VECTOR
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: vector-to-ipv6-host VECTOR
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: wait-for-input SOCKET-OR-SOCKETS &key TIMEOUT READY-ONLY &aux SINGLE-SOCKET-P
-
Waits for one or more streams to become ready for reading from
the socket. When ‘timeout’ (a non-negative real number) is
specified, wait ‘timeout’ seconds, or wait indefinitely when
it isn’t specified. A ‘timeout’ value of 0 (zero) means polling.
Returns two values: the first value is the list of streams which
are readable (or in case of server streams acceptable). NIL may
be returned for this value either when waiting timed out or when
it was interrupted (EINTR). The second value is a real number
indicating the time remaining within the timeout period or NIL if
none.
Without the READY-ONLY arg, WAIT-FOR-INPUT will return all sockets in
the original list you passed it. This prevents a new list from being
consed up. Some users of USOCKET were reluctant to use it if it
wouldn’t behave that way, expecting it to cost significant performance
to do the associated garbage collection.
Without the READY-ONLY arg, you need to check the socket STATE slot for
the values documented in usocket.lisp in the usocket class.
- Package
usocket
- Source
usocket.lisp (file)
6.1.5 Generic functions
- Generic Function: get-local-address SOCKET
-
Returns the IP address of the socket.
- Package
usocket
- Source
usocket.lisp (file)
- Methods
- Method: get-local-address (USOCKET usocket)
-
- Source
sbcl.lisp (file)
- Generic Function: get-local-name SOCKET
-
Returns the IP address and port of the socket as values.
This function applies to both ‘stream-usocket’ and ‘server-stream-usocket’
type objects.
- Package
usocket
- Source
usocket.lisp (file)
- Methods
- Method: get-local-name (USOCKET usocket)
-
- Source
sbcl.lisp (file)
- Generic Function: get-local-port SOCKET
-
Returns the IP port of the socket.
This function applies to both ‘stream-usocket’ and ‘server-stream-usocket’
type objects.
- Package
usocket
- Source
usocket.lisp (file)
- Methods
- Method: get-local-port (USOCKET usocket)
-
- Source
sbcl.lisp (file)
- Generic Function: get-peer-address SOCKET
-
Returns the IP address of the peer the socket is connected to.
- Package
usocket
- Source
usocket.lisp (file)
- Methods
- Method: get-peer-address (USOCKET stream-usocket)
-
- Source
sbcl.lisp (file)
- Generic Function: get-peer-name SOCKET
-
Returns the IP address and port of the peer
the socket is connected to as values.
- Package
usocket
- Source
usocket.lisp (file)
- Methods
- Method: get-peer-name (USOCKET stream-usocket)
-
- Source
sbcl.lisp (file)
- Generic Function: get-peer-port SOCKET
-
Returns the IP port of the peer the socket to.
- Package
usocket
- Source
usocket.lisp (file)
- Methods
- Method: get-peer-port (USOCKET stream-usocket)
-
- Source
sbcl.lisp (file)
- Generic Function: host-byte-order ADDRESS
-
- Package
usocket
- Source
usocket.lisp (file)
- Methods
- Method: host-byte-order (INT integer)
-
- Method: host-byte-order (VECTOR vector)
-
Convert a vector, such as #(192 168 1 1), to host-byte-order, such as
3232235777.
- Method: host-byte-order (STRING string)
-
Convert a string, such as 192.168.1.1, to host-byte-order,
such as 3232235777.
- Generic Function: host-or-ip CONDITION
-
- Generic Function: (setf host-or-ip) NEW-VALUE CONDITION
-
- Package
usocket
- Methods
- Method: host-or-ip (CONDITION ns-condition)
-
- Method: (setf host-or-ip) NEW-VALUE (CONDITION ns-condition)
-
- Source
condition.lisp (file)
- Generic Function: socket OBJECT
-
- Generic Function: (setf socket) NEW-VALUE OBJECT
-
- Package
usocket
- Methods
- Method: socket (USOCKET usocket)
-
- Method: (setf socket) NEW-VALUE (USOCKET usocket)
-
Implementation specific socket object instance.’
- Source
usocket.lisp (file)
- Generic Function: socket-accept SOCKET &key ELEMENT-TYPE
-
Accepts a connection from ‘socket’, returning a ‘stream-socket’.
The stream associated with the socket returned has ‘element-type’ when
explicitly specified, or the element-type passed to ‘socket-listen’ otherwise.
- Package
usocket
- Source
usocket.lisp (file)
- Methods
- Method: socket-accept (USOCKET stream-server-usocket) &key ELEMENT-TYPE
-
- Source
sbcl.lisp (file)
- Generic Function: socket-close USOCKET
-
Close a previously opened ‘usocket’.
- Package
usocket
- Source
usocket.lisp (file)
- Methods
- Method: socket-close (USOCKET stream-usocket)
-
- Source
sbcl.lisp (file)
- Method: socket-close (USOCKET usocket)
-
- Source
sbcl.lisp (file)
- Method: socket-close (USOCKET usocket) before
-
- Generic Function: socket-option SOCKET OPTION &key
-
Get a socket’s internal options
- Package
usocket
- Source
option.lisp (file)
- Writer
(setf socket-option) (generic function)
- Methods
- Method: socket-option (USOCKET stream-usocket) (OPTION (eql tcp-nodelay)) &key
-
- Method: socket-option (USOCKET stream-usocket) (OPTION (eql tcp-no-delay)) &key
-
- Method: socket-option (USOCKET datagram-usocket) (OPTION (eql broadcast)) &key
-
- Method: socket-option (USOCKET stream-server-usocket) (OPTION (eql reuse-address)) &key
-
- Method: socket-option (USOCKET stream-usocket) (OPTION (eql send-timeout)) &key
-
- Method: socket-option (USOCKET stream-usocket) (OPTION (eql receive-timeout)) &key
-
- Method: socket-option (SOCKET usocket) (OPTION symbol) &key
-
- Method: socket-option (SOCKET usocket) OPTION &key
-
- Generic Function: (setf socket-option) NEW-VALUE SOCKET OPTION &key
-
Set a socket’s internal options
- Package
usocket
- Source
option.lisp (file)
- Reader
socket-option (generic function)
- Methods
- Method: (setf socket-option) NEW-VALUE (USOCKET stream-usocket) (OPTION (eql tcp-nodelay)) &key
-
- Method: (setf socket-option) NEW-VALUE (USOCKET stream-usocket) (OPTION (eql tcp-no-delay)) &key
-
- Method: (setf socket-option) NEW-VALUE (USOCKET datagram-usocket) (OPTION (eql broadcast)) &key
-
- Method: (setf socket-option) NEW-VALUE (USOCKET stream-server-usocket) (OPTION (eql reuse-address)) &key
-
- Method: (setf socket-option) NEW-VALUE (USOCKET stream-usocket) (OPTION (eql send-timeout)) &key
-
- Method: (setf socket-option) NEW-VALUE (USOCKET stream-usocket) (OPTION (eql receive-timeout)) &key
-
- Method: (setf socket-option) NEW-VALUE (SOCKET usocket) (OPTION symbol) &key
-
- Method: (setf socket-option) NEW-VALUE (SOCKET usocket) OPTION &key
-
- Generic Function: socket-receive USOCKET BUFFER LENGTH &key ELEMENT-TYPE
-
Receive packets from a previously opend ‘usocket’.
Returns 4 values: (values buffer size host port)
- Package
usocket
- Source
usocket.lisp (file)
- Methods
- Method: socket-receive (USOCKET datagram-usocket) BUFFER LENGTH &key ELEMENT-TYPE
-
- Source
sbcl.lisp (file)
- Generic Function: socket-send USOCKET BUFFER LENGTH &key HOST PORT OFFSET
-
Send packets through a previously opend ‘usocket’.
- Package
usocket
- Source
usocket.lisp (file)
- Methods
- Method: socket-send (USOCKET datagram-usocket) BUFFER SIZE &key HOST PORT OFFSET
-
- Source
sbcl.lisp (file)
- Generic Function: socket-shutdown USOCKET DIRECTION
-
Shutdown communication on the socket in DIRECTION.
After a shutdown no input and/or output of the indicated DIRECTION
can be performed on the ‘usocket’.
DIRECTION should be either :INPUT or :OUTPUT or :IO
- Package
usocket
- Source
usocket.lisp (file)
- Methods
- Method: socket-shutdown (USOCKET stream-usocket) DIRECTION
-
- Source
sbcl.lisp (file)
- Generic Function: socket-state SOCKET
-
NIL - not ready
:READ - ready to read
:READ-WRITE - ready to read and write
:WRITE - ready to write
- Package
usocket
- Source
usocket.lisp (file)
- Methods
- Method: socket-state (SOCKET usocket)
-
- Generic Function: socket-stream OBJECT
-
- Generic Function: (setf socket-stream) NEW-VALUE OBJECT
-
- Package
usocket
- Methods
- Method: socket-stream (STREAM-USOCKET stream-usocket)
-
- Method: (setf socket-stream) NEW-VALUE (STREAM-USOCKET stream-usocket)
-
Stream instance associated with the socket.
- Source
usocket.lisp (file)
6.1.6 Conditions
- Condition: address-in-use-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: address-not-available-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: bad-file-descriptor-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: connection-aborted-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: connection-refused-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: connection-reset-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: deadline-timeout-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: host-down-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: host-unreachable-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: insufficient-implementation ()
-
The ancestor of all errors usocket may generate
because of insufficient support from the underlying implementation
with respect to the arguments given to ‘function’.
One call may signal several errors, if the caller allows processing
to continue.
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
error (condition)
- Direct subclasses
-
- Direct methods
-
- Direct slots
- Slot: feature
-
- Initargs
:feature
- Readers
feature (generic function)
- Slot: context
-
String designator of the public API function which
the feature belongs to.
- Initargs
:context
- Readers
context (generic function)
- Condition: interrupted-condition ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-condition (condition)
- Condition: invalid-argument-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: invalid-socket-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: invalid-socket-stream-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: network-down-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: network-reset-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: network-unreachable-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: no-buffers-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: ns-condition ()
-
Parent condition for all name resolution conditions.
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
condition (condition)
- Direct subclasses
-
- Direct methods
-
- Direct slots
- Slot: host-or-ip
-
- Initargs
:host-or-ip
- Readers
host-or-ip (generic function)
- Writers
(setf host-or-ip) (generic function)
- Condition: ns-error ()
-
Parent error for all name resolution errors.
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
-
- Direct subclasses
-
- Condition: ns-host-not-found-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
ns-error (condition)
- Condition: ns-no-recovery-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
ns-error (condition)
- Condition: ns-try-again-condition ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
ns-condition (condition)
- Condition: ns-unknown-condition ()
-
Condition raised when there’s no other - more applicable -
condition available.
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
ns-condition (condition)
- Direct methods
-
- Direct slots
- Slot: real-condition
-
- Initargs
:real-condition
- Initform
(quote nil)
- Readers
ns-real-condition (generic function)
- Writers
(setf ns-real-condition) (generic function)
- Condition: ns-unknown-error ()
-
Error raised when there’s no other - more applicable -
error available.
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
ns-error (condition)
- Direct methods
-
- Direct slots
- Slot: real-error
-
- Initargs
:real-error
- Initform
(quote nil)
- Readers
ns-real-error (generic function)
- Writers
(setf ns-real-error) (generic function)
- Condition: operation-not-permitted-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: operation-not-supported-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: protocol-not-supported-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: shutdown-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: socket-condition ()
-
Parent condition for all socket related conditions.
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
condition (condition)
- Direct subclasses
-
- Direct methods
-
- Direct slots
- Slot: socket
-
- Initargs
:socket
- Readers
usocket-socket (generic function)
- Writers
(setf usocket-socket) (generic function)
- Condition: socket-error ()
-
Parent error for all socket related errors
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
-
- Direct subclasses
-
- Condition: socket-type-not-supported-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: timeout-error ()
-
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Condition: unimplemented ()
-
Signalled if a certain feature might be implemented,
based on the features of the underlying implementation, but hasn’t
been implemented yet.
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
insufficient-implementation (condition)
- Condition: unknown-condition ()
-
Condition raised when there’s no other - more applicable -
condition available.
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-condition (condition)
- Direct methods
-
- Direct slots
- Slot: real-condition
-
- Initargs
:real-condition
- Readers
usocket-real-condition (generic function)
- Writers
(setf usocket-real-condition) (generic function)
- Condition: unknown-error ()
-
Error raised when there’s no other - more applicable -
error available.
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
socket-error (condition)
- Direct methods
-
- Direct slots
- Slot: real-error
-
- Initargs
:real-error
- Initform
(quote nil)
- Readers
usocket-real-error (generic function)
- Writers
(setf usocket-real-error) (generic function)
- Slot: errno
-
- Initargs
:errno
- Initform
(quote 0)
- Readers
usocket-errno (generic function)
- Condition: unsupported ()
-
Signalled when the underlying implementation
doesn’t allow supporting the requested feature.
When you see this error, go bug your vendor/implementation developer!
- Package
usocket
- Source
condition.lisp (file)
- Direct superclasses
insufficient-implementation (condition)
- Direct methods
minimum (method)
- Direct slots
- Slot: minimum
-
Indicates the minimal version of the
implementation required to support the requested feature.
- Initargs
:minimum
- Readers
minimum (generic function)
6.1.7 Classes
- Class: datagram-usocket ()
-
UDP (inet-datagram) socket
- Package
usocket
- Source
usocket.lisp (file)
- Direct superclasses
usocket (class)
- Direct methods
-
- Direct slots
- Slot: connected-p
-
- Type
boolean
- Initargs
:connected-p
- Readers
connected-p (generic function)
- Writers
(setf connected-p) (generic function)
- Class: stream-server-usocket ()
-
Socket which listens for stream connections to
be initiated from remote sockets.
- Package
usocket
- Source
usocket.lisp (file)
- Direct superclasses
usocket (class)
- Direct methods
-
- Direct slots
- Slot: element-type
-
Default element type for streams created by
‘socket-accept’.
- Initargs
:element-type
- Initform
(quote character)
- Readers
element-type (generic function)
- Class: stream-usocket ()
-
Stream socket class.
’
Contrary to other sockets, these sockets may be closed either
with the ‘socket-close’ method or by closing the associated stream
(which can be retrieved with the ‘socket-stream’ accessor).
- Package
usocket
- Source
usocket.lisp (file)
- Direct superclasses
usocket (class)
- Direct methods
-
- Direct slots
- Slot: stream
-
Stream instance associated with the socket.
- Initargs
:stream
- Readers
socket-stream (generic function)
- Writers
(setf socket-stream) (generic function)
- Class: usocket ()
-
The main socket class.
Sockets should be closed using the ‘socket-close’ method.
- Package
usocket
- Source
usocket.lisp (file)
- Direct superclasses
standard-object (class)
- Direct subclasses
-
- Direct methods
-
- Direct slots
- Slot: socket
-
Implementation specific socket object instance.’
- Initargs
:socket
- Readers
socket (generic function)
- Writers
(setf socket) (generic function)
- Slot: wait-list
-
WAIT-LIST the object is associated with.
- Readers
wait-list (generic function)
- Writers
(setf wait-list) (generic function)
- Slot: state
-
Per-socket return value for the ‘wait-for-input’ function.
The value stored in this slot can be any of
NIL - not ready
:READ - ready to read
:READ-WRITE - ready to read and write
:WRITE - ready to write
The last two remain unused in the current version.
- Readers
state (generic function)
- Writers
(setf state) (generic function)
6.2 Internal definitions
6.2.1 Special variables
- Special Variable: *dummy-stream*
-
- Package
usocket
- Source
sbcl.lisp (file)
- Special Variable: +sbcl-condition-map+
-
- Package
usocket
- Source
sbcl.lisp (file)
- Special Variable: +sbcl-error-map+
-
- Package
usocket
- Source
sbcl.lisp (file)
- Special Variable: +unix-errno-condition-map+
-
- Package
usocket
- Source
condition.lisp (file)
- Special Variable: +unix-errno-error-map+
-
- Package
usocket
- Source
condition.lisp (file)
- Special Variable: +unix-ns-error-map+
-
- Package
usocket
- Source
condition.lisp (file)
6.2.2 Macros
- Macro: %with-timeout (SECONDS TIMEOUT-FORM) &body BODY
-
Runs BODY as an implicit PROGN with timeout of SECONDS. If
timeout occurs before BODY has finished, BODY is unwound and
TIMEOUT-FORM is executed with its values returned instead.
Note that BODY is unwound asynchronously when a timeout occurs,
so unless all code executed during it – including anything
down the call chain – is asynch unwind safe, bad things will
happen. Use with care.
- Package
usocket
- Source
sbcl.lisp (file)
- Macro: define-usocket-condition-classes CLASS-LIST PARENTS
-
- Package
usocket
- Source
condition.lisp (file)
- Macro: ignore-unsupported-warnings &body BODY
-
- Package
usocket
- Source
condition.lisp (file)
6.2.3 Functions
- Function: %add-waiter WAIT-LIST WAITER
-
- Package
usocket
- Source
sbcl.lisp (file)
- Function: %make-wait-list &key (%WAIT %WAIT) (WAITERS WAITERS) (MAP MAP)
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: %remove-waiter WAIT-LIST WAITER
-
- Package
usocket
- Source
sbcl.lisp (file)
- Function: %setup-wait-list WAIT-LIST
-
- Package
usocket
- Source
sbcl.lisp (file)
- Function: bool->int BOOL
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: copy-wait-list INSTANCE
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: define-usocket-condition-class CLASS &rest PARENTS
-
- Package
usocket
- Source
condition.lisp (file)
- Function: get-host-by-address ADDRESS
-
- Package
usocket
- Source
sbcl.lisp (file)
- Function: get-host-name ()
-
- Package
usocket
- Source
sbcl.lisp (file)
- Function: handle-condition CONDITION &optional SOCKET HOST-OR-IP
-
Dispatch correct usocket condition.
- Package
usocket
- Source
sbcl.lisp (file)
- Function: host-to-hbo HOST
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: host-to-vector-quad HOST
-
Translate a host specification (vector quad, dotted quad or domain name)
to a vector quad.
- Package
usocket
- Source
usocket.lisp (file)
- Function: int->bool INT
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: ip-address-string-p STRING
-
Return a true value if the given string could be an IP address.
- Package
usocket
- Source
usocket.lisp (file)
- Function: list-of-strings-to-integers LIST
-
Take a list of strings and return a new list of integers (from
parse-integer) on each of the string elements.
- Package
usocket
- Source
usocket.lisp (file)
- Function: make-datagram-socket SOCKET &key CONNECTED-P
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: make-socket &key SOCKET
-
Create a usocket socket type from implementation specific socket.
- Package
usocket
- Source
usocket.lisp (file)
- Function: make-stream-server-socket SOCKET &key ELEMENT-TYPE
-
Create a usocket-server socket type from an
implementation-specific socket object.
The returned value is a subtype of ‘stream-server-usocket’.
- Package
usocket
- Source
usocket.lisp (file)
- Function: make-stream-socket &key SOCKET STREAM
-
Create a usocket socket type from implementation specific socket
and stream objects.
Sockets returned should be closed using the ‘socket-close’ method or
by closing the stream associated with the socket.
- Package
usocket
- Source
usocket.lisp (file)
- Function: map-errno-condition ERRNO
-
- Package
usocket
- Source
condition.lisp (file)
- Function: map-errno-error ERRNO
-
- Package
usocket
- Source
condition.lisp (file)
- Function: map-socket-error SOCK-ERR
-
- Package
usocket
- Source
sbcl.lisp (file)
- Function: split-ipv6-address STRING
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: split-timeout TIMEOUT &optional FRACTIONAL
-
Split real value timeout into seconds and microseconds.
Optionally, a different fractional part can be specified.
- Package
usocket
- Source
usocket.lisp (file)
- Function: wait-for-input-internal SOCKETS &key TIMEOUT
-
- Package
usocket
- Source
sbcl.lisp (file)
- Function: wait-list-%wait INSTANCE
-
- Function: (setf wait-list-%wait) VALUE INSTANCE
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: wait-list-map INSTANCE
-
- Function: (setf wait-list-map) VALUE INSTANCE
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: wait-list-p OBJECT
-
- Package
usocket
- Source
usocket.lisp (file)
- Function: wait-list-waiters INSTANCE
-
- Function: (setf wait-list-waiters) VALUE INSTANCE
-
- Package
usocket
- Source
usocket.lisp (file)
6.2.4 Generic functions
- Generic Function: connected-p OBJECT
-
- Generic Function: (setf connected-p) NEW-VALUE OBJECT
-
- Package
usocket
- Methods
- Method: connected-p (DATAGRAM-USOCKET datagram-usocket)
-
automatically generated reader method
- Source
usocket.lisp (file)
- Method: (setf connected-p) NEW-VALUE (DATAGRAM-USOCKET datagram-usocket)
-
automatically generated writer method
- Source
usocket.lisp (file)
- Generic Function: context CONDITION
-
- Package
usocket
- Methods
- Method: context (CONDITION insufficient-implementation)
-
- Source
condition.lisp (file)
- Generic Function: element-type OBJECT
-
- Package
usocket
- Methods
- Method: element-type (STREAM-SERVER-USOCKET stream-server-usocket)
-
Default element type for streams created by
‘socket-accept’.
- Source
usocket.lisp (file)
- Generic Function: feature CONDITION
-
- Package
usocket
- Methods
- Method: feature (CONDITION insufficient-implementation)
-
- Source
condition.lisp (file)
- Generic Function: minimum CONDITION
-
- Package
usocket
- Methods
- Method: minimum (CONDITION unsupported)
-
- Source
condition.lisp (file)
- Generic Function: ns-real-condition CONDITION
-
- Generic Function: (setf ns-real-condition) NEW-VALUE CONDITION
-
- Package
usocket
- Methods
- Method: ns-real-condition (CONDITION ns-unknown-condition)
-
- Method: (setf ns-real-condition) NEW-VALUE (CONDITION ns-unknown-condition)
-
- Source
condition.lisp (file)
- Generic Function: ns-real-error CONDITION
-
- Generic Function: (setf ns-real-error) NEW-VALUE CONDITION
-
- Package
usocket
- Methods
- Method: ns-real-error (CONDITION ns-unknown-error)
-
- Method: (setf ns-real-error) NEW-VALUE (CONDITION ns-unknown-error)
-
- Source
condition.lisp (file)
- Generic Function: state OBJECT
-
- Generic Function: (setf state) NEW-VALUE OBJECT
-
- Package
usocket
- Methods
- Method: state (USOCKET usocket)
-
- Method: (setf state) NEW-VALUE (USOCKET usocket)
-
Per-socket return value for the ‘wait-for-input’ function.
The value stored in this slot can be any of
NIL - not ready
:READ - ready to read
:READ-WRITE - ready to read and write
:WRITE - ready to write
The last two remain unused in the current version.
- Source
usocket.lisp (file)
- Generic Function: usocket-errno CONDITION
-
- Package
usocket
- Methods
- Method: usocket-errno (CONDITION unknown-error)
-
- Source
condition.lisp (file)
- Generic Function: usocket-real-condition CONDITION
-
- Generic Function: (setf usocket-real-condition) NEW-VALUE CONDITION
-
- Package
usocket
- Methods
- Method: usocket-real-condition (CONDITION unknown-condition)
-
- Method: (setf usocket-real-condition) NEW-VALUE (CONDITION unknown-condition)
-
- Source
condition.lisp (file)
- Generic Function: usocket-real-error CONDITION
-
- Generic Function: (setf usocket-real-error) NEW-VALUE CONDITION
-
- Package
usocket
- Methods
- Method: usocket-real-error (CONDITION unknown-error)
-
- Method: (setf usocket-real-error) NEW-VALUE (CONDITION unknown-error)
-
- Source
condition.lisp (file)
- Generic Function: usocket-socket CONDITION
-
- Generic Function: (setf usocket-socket) NEW-VALUE CONDITION
-
- Package
usocket
- Methods
- Method: usocket-socket (CONDITION socket-condition)
-
- Method: (setf usocket-socket) NEW-VALUE (CONDITION socket-condition)
-
- Source
condition.lisp (file)
- Generic Function: wait-list OBJECT
-
- Generic Function: (setf wait-list) NEW-VALUE OBJECT
-
- Package
usocket
- Methods
- Method: wait-list (USOCKET usocket)
-
- Method: (setf wait-list) NEW-VALUE (USOCKET usocket)
-
WAIT-LIST the object is associated with.
- Source
usocket.lisp (file)
6.2.5 Structures
- Structure: wait-list ()
-
- Package
usocket
- Source
usocket.lisp (file)
- Direct superclasses
structure-object (structure)
- Direct slots
- Slot: %wait
-
- Readers
wait-list-%wait (function)
- Writers
(setf wait-list-%wait) (function)
- Slot: waiters
-
- Readers
wait-list-waiters (function)
- Writers
(setf wait-list-waiters) (function)
- Slot: map
-
- Readers
wait-list-map (function)
- Writers
(setf wait-list-map) (function)
Appendix A Indexes
A.1 Concepts
| Index Entry | | Section |
|
F | | |
| File, Lisp, usocket.asd: | | The usocket․asd file |
| File, Lisp, usocket/backend/sbcl.lisp: | | The usocket/backend/sbcl․lisp file |
| File, Lisp, usocket/condition.lisp: | | The usocket/condition․lisp file |
| File, Lisp, usocket/option.lisp: | | The usocket/option․lisp file |
| File, Lisp, usocket/package.lisp: | | The usocket/package․lisp file |
| File, Lisp, usocket/usocket.lisp: | | The usocket/usocket․lisp file |
|
L | | |
| Lisp File, usocket.asd: | | The usocket․asd file |
| Lisp File, usocket/backend/sbcl.lisp: | | The usocket/backend/sbcl․lisp file |
| Lisp File, usocket/condition.lisp: | | The usocket/condition․lisp file |
| Lisp File, usocket/option.lisp: | | The usocket/option․lisp file |
| Lisp File, usocket/package.lisp: | | The usocket/package․lisp file |
| Lisp File, usocket/usocket.lisp: | | The usocket/usocket․lisp file |
|
M | | |
| Module, usocket/backend: | | The usocket/backend module |
| Module, usocket/vendor: | | The usocket/vendor module |
|
U | | |
| usocket.asd: | | The usocket․asd file |
| usocket/backend: | | The usocket/backend module |
| usocket/backend/sbcl.lisp: | | The usocket/backend/sbcl․lisp file |
| usocket/condition.lisp: | | The usocket/condition․lisp file |
| usocket/option.lisp: | | The usocket/option․lisp file |
| usocket/package.lisp: | | The usocket/package․lisp file |
| usocket/usocket.lisp: | | The usocket/usocket․lisp file |
| usocket/vendor: | | The usocket/vendor module |
|
A.2 Functions
| Index Entry | | Section |
|
% | | |
| %add-waiter : | | Internal functions |
| %make-wait-list : | | Internal functions |
| %remove-waiter : | | Internal functions |
| %setup-wait-list : | | Internal functions |
| %with-timeout : | | Internal macros |
|
( | | |
| (setf connected-p) : | | Internal generic functions |
| (setf connected-p) : | | Internal generic functions |
| (setf host-or-ip) : | | Exported generic functions |
| (setf host-or-ip) : | | Exported generic functions |
| (setf ns-real-condition) : | | Internal generic functions |
| (setf ns-real-condition) : | | Internal generic functions |
| (setf ns-real-error) : | | Internal generic functions |
| (setf ns-real-error) : | | Internal generic functions |
| (setf socket) : | | Exported generic functions |
| (setf socket) : | | Exported generic functions |
| (setf socket-option) : | | Exported generic functions |
| (setf socket-option) : | | Exported generic functions |
| (setf socket-option) : | | Exported generic functions |
| (setf socket-option) : | | Exported generic functions |
| (setf socket-option) : | | Exported generic functions |
| (setf socket-option) : | | Exported generic functions |
| (setf socket-option) : | | Exported generic functions |
| (setf socket-option) : | | Exported generic functions |
| (setf socket-option) : | | Exported generic functions |
| (setf socket-stream) : | | Exported generic functions |
| (setf socket-stream) : | | Exported generic functions |
| (setf state) : | | Internal generic functions |
| (setf state) : | | Internal generic functions |
| (setf usocket-real-condition) : | | Internal generic functions |
| (setf usocket-real-condition) : | | Internal generic functions |
| (setf usocket-real-error) : | | Internal generic functions |
| (setf usocket-real-error) : | | Internal generic functions |
| (setf usocket-socket) : | | Internal generic functions |
| (setf usocket-socket) : | | Internal generic functions |
| (setf wait-list) : | | Internal generic functions |
| (setf wait-list) : | | Internal generic functions |
| (setf wait-list-%wait) : | | Internal functions |
| (setf wait-list-map) : | | Internal functions |
| (setf wait-list-waiters) : | | Internal functions |
|
A | | |
| add-waiter : | | Exported functions |
|
B | | |
| bool->int : | | Internal functions |
|
C | | |
| connected-p : | | Internal generic functions |
| connected-p : | | Internal generic functions |
| context : | | Internal generic functions |
| context : | | Internal generic functions |
| copy-wait-list : | | Internal functions |
|
D | | |
| datagram-usocket-p : | | Exported functions |
| define-usocket-condition-class : | | Internal functions |
| define-usocket-condition-classes : | | Internal macros |
| dotted-quad-to-vector-quad : | | Exported functions |
|
E | | |
| element-type : | | Internal generic functions |
| element-type : | | Internal generic functions |
|
F | | |
| feature : | | Internal generic functions |
| feature : | | Internal generic functions |
| Function, %add-waiter : | | Internal functions |
| Function, %make-wait-list : | | Internal functions |
| Function, %remove-waiter : | | Internal functions |
| Function, %setup-wait-list : | | Internal functions |
| Function, (setf wait-list-%wait) : | | Internal functions |
| Function, (setf wait-list-map) : | | Internal functions |
| Function, (setf wait-list-waiters) : | | Internal functions |
| Function, add-waiter : | | Exported functions |
| Function, bool->int : | | Internal functions |
| Function, copy-wait-list : | | Internal functions |
| Function, datagram-usocket-p : | | Exported functions |
| Function, define-usocket-condition-class : | | Internal functions |
| Function, dotted-quad-to-vector-quad : | | Exported functions |
| Function, get-host-by-address : | | Internal functions |
| Function, get-host-by-name : | | Exported functions |
| Function, get-host-name : | | Internal functions |
| Function, get-hosts-by-name : | | Exported functions |
| Function, get-random-host-by-name : | | Exported functions |
| Function, handle-condition : | | Internal functions |
| Function, hbo-to-dotted-quad : | | Exported functions |
| Function, hbo-to-vector-quad : | | Exported functions |
| Function, host-to-hbo : | | Internal functions |
| Function, host-to-hostname : | | Exported functions |
| Function, host-to-vector-quad : | | Internal functions |
| Function, int->bool : | | Internal functions |
| Function, integer-to-octet-buffer : | | Exported functions |
| Function, ip-address-string-p : | | Internal functions |
| Function, ip/= : | | Exported functions |
| Function, ip= : | | Exported functions |
| Function, ipv6-host-to-vector : | | Exported functions |
| Function, list-of-strings-to-integers : | | Internal functions |
| Function, make-datagram-socket : | | Internal functions |
| Function, make-socket : | | Internal functions |
| Function, make-stream-server-socket : | | Internal functions |
| Function, make-stream-socket : | | Internal functions |
| Function, make-wait-list : | | Exported functions |
| Function, map-errno-condition : | | Internal functions |
| Function, map-errno-error : | | Internal functions |
| Function, map-socket-error : | | Internal functions |
| Function, octet-buffer-to-integer : | | Exported functions |
| Function, remove-all-waiters : | | Exported functions |
| Function, remove-waiter : | | Exported functions |
| Function, socket-connect : | | Exported functions |
| Function, socket-listen : | | Exported functions |
| Function, split-ipv6-address : | | Internal functions |
| Function, split-timeout : | | Internal functions |
| Function, stream-server-usocket-p : | | Exported functions |
| Function, stream-usocket-p : | | Exported functions |
| Function, usocket-p : | | Exported functions |
| Function, vector-quad-to-dotted-quad : | | Exported functions |
| Function, vector-to-ipv6-host : | | Exported functions |
| Function, wait-for-input : | | Exported functions |
| Function, wait-for-input-internal : | | Internal functions |
| Function, wait-list-%wait : | | Internal functions |
| Function, wait-list-map : | | Internal functions |
| Function, wait-list-p : | | Internal functions |
| Function, wait-list-waiters : | | Internal functions |
|
G | | |
| Generic Function, (setf connected-p) : | | Internal generic functions |
| Generic Function, (setf host-or-ip) : | | Exported generic functions |
| Generic Function, (setf ns-real-condition) : | | Internal generic functions |
| Generic Function, (setf ns-real-error) : | | Internal generic functions |
| Generic Function, (setf socket) : | | Exported generic functions |
| Generic Function, (setf socket-option) : | | Exported generic functions |
| Generic Function, (setf socket-stream) : | | Exported generic functions |
| Generic Function, (setf state) : | | Internal generic functions |
| Generic Function, (setf usocket-real-condition) : | | Internal generic functions |
| Generic Function, (setf usocket-real-error) : | | Internal generic functions |
| Generic Function, (setf usocket-socket) : | | Internal generic functions |
| Generic Function, (setf wait-list) : | | Internal generic functions |
| Generic Function, connected-p : | | Internal generic functions |
| Generic Function, context : | | Internal generic functions |
| Generic Function, element-type : | | Internal generic functions |
| Generic Function, feature : | | Internal generic functions |
| Generic Function, get-local-address : | | Exported generic functions |
| Generic Function, get-local-name : | | Exported generic functions |
| Generic Function, get-local-port : | | Exported generic functions |
| Generic Function, get-peer-address : | | Exported generic functions |
| Generic Function, get-peer-name : | | Exported generic functions |
| Generic Function, get-peer-port : | | Exported generic functions |
| Generic Function, host-byte-order : | | Exported generic functions |
| Generic Function, host-or-ip : | | Exported generic functions |
| Generic Function, minimum : | | Internal generic functions |
| Generic Function, ns-real-condition : | | Internal generic functions |
| Generic Function, ns-real-error : | | Internal generic functions |
| Generic Function, socket : | | Exported generic functions |
| Generic Function, socket-accept : | | Exported generic functions |
| Generic Function, socket-close : | | Exported generic functions |
| Generic Function, socket-option : | | Exported generic functions |
| Generic Function, socket-receive : | | Exported generic functions |
| Generic Function, socket-send : | | Exported generic functions |
| Generic Function, socket-shutdown : | | Exported generic functions |
| Generic Function, socket-state : | | Exported generic functions |
| Generic Function, socket-stream : | | Exported generic functions |
| Generic Function, state : | | Internal generic functions |
| Generic Function, usocket-errno : | | Internal generic functions |
| Generic Function, usocket-real-condition : | | Internal generic functions |
| Generic Function, usocket-real-error : | | Internal generic functions |
| Generic Function, usocket-socket : | | Internal generic functions |
| Generic Function, wait-list : | | Internal generic functions |
| get-host-by-address : | | Internal functions |
| get-host-by-name : | | Exported functions |
| get-host-name : | | Internal functions |
| get-hosts-by-name : | | Exported functions |
| get-local-address : | | Exported generic functions |
| get-local-address : | | Exported generic functions |
| get-local-name : | | Exported generic functions |
| get-local-name : | | Exported generic functions |
| get-local-port : | | Exported generic functions |
| get-local-port : | | Exported generic functions |
| get-peer-address : | | Exported generic functions |
| get-peer-address : | | Exported generic functions |
| get-peer-name : | | Exported generic functions |
| get-peer-name : | | Exported generic functions |
| get-peer-port : | | Exported generic functions |
| get-peer-port : | | Exported generic functions |
| get-random-host-by-name : | | Exported functions |
|
H | | |
| handle-condition : | | Internal functions |
| hbo-to-dotted-quad : | | Exported functions |
| hbo-to-vector-quad : | | Exported functions |
| host-byte-order : | | Exported generic functions |
| host-byte-order : | | Exported generic functions |
| host-byte-order : | | Exported generic functions |
| host-byte-order : | | Exported generic functions |
| host-or-ip : | | Exported generic functions |
| host-or-ip : | | Exported generic functions |
| host-to-hbo : | | Internal functions |
| host-to-hostname : | | Exported functions |
| host-to-vector-quad : | | Internal functions |
|
I | | |
| ignore-unsupported-warnings : | | Internal macros |
| int->bool : | | Internal functions |
| integer-to-octet-buffer : | | Exported functions |
| ip-address-string-p : | | Internal functions |
| ip-from-octet-buffer : | | Exported macros |
| ip-to-octet-buffer : | | Exported macros |
| ip/= : | | Exported functions |
| ip= : | | Exported functions |
| ipv6-host-to-vector : | | Exported functions |
|
L | | |
| list-of-strings-to-integers : | | Internal functions |
|
M | | |
| Macro, %with-timeout : | | Internal macros |
| Macro, define-usocket-condition-classes : | | Internal macros |
| Macro, ignore-unsupported-warnings : | | Internal macros |
| Macro, ip-from-octet-buffer : | | Exported macros |
| Macro, ip-to-octet-buffer : | | Exported macros |
| Macro, port-from-octet-buffer : | | Exported macros |
| Macro, port-to-octet-buffer : | | Exported macros |
| Macro, unimplemented : | | Exported macros |
| Macro, unsupported : | | Exported macros |
| Macro, with-client-socket : | | Exported macros |
| Macro, with-connected-socket : | | Exported macros |
| Macro, with-mapped-conditions : | | Exported macros |
| Macro, with-server-socket : | | Exported macros |
| Macro, with-socket-listener : | | Exported macros |
| make-datagram-socket : | | Internal functions |
| make-socket : | | Internal functions |
| make-stream-server-socket : | | Internal functions |
| make-stream-socket : | | Internal functions |
| make-wait-list : | | Exported functions |
| map-errno-condition : | | Internal functions |
| map-errno-error : | | Internal functions |
| map-socket-error : | | Internal functions |
| Method, (setf connected-p) : | | Internal generic functions |
| Method, (setf host-or-ip) : | | Exported generic functions |
| Method, (setf ns-real-condition) : | | Internal generic functions |
| Method, (setf ns-real-error) : | | Internal generic functions |
| Method, (setf socket) : | | Exported generic functions |
| Method, (setf socket-option) : | | Exported generic functions |
| Method, (setf socket-option) : | | Exported generic functions |
| Method, (setf socket-option) : | | Exported generic functions |
| Method, (setf socket-option) : | | Exported generic functions |
| Method, (setf socket-option) : | | Exported generic functions |
| Method, (setf socket-option) : | | Exported generic functions |
| Method, (setf socket-option) : | | Exported generic functions |
| Method, (setf socket-option) : | | Exported generic functions |
| Method, (setf socket-stream) : | | Exported generic functions |
| Method, (setf state) : | | Internal generic functions |
| Method, (setf usocket-real-condition) : | | Internal generic functions |
| Method, (setf usocket-real-error) : | | Internal generic functions |
| Method, (setf usocket-socket) : | | Internal generic functions |
| Method, (setf wait-list) : | | Internal generic functions |
| Method, connected-p : | | Internal generic functions |
| Method, context : | | Internal generic functions |
| Method, element-type : | | Internal generic functions |
| Method, feature : | | Internal generic functions |
| Method, get-local-address : | | Exported generic functions |
| Method, get-local-name : | | Exported generic functions |
| Method, get-local-port : | | Exported generic functions |
| Method, get-peer-address : | | Exported generic functions |
| Method, get-peer-name : | | Exported generic functions |
| Method, get-peer-port : | | Exported generic functions |
| Method, host-byte-order : | | Exported generic functions |
| Method, host-byte-order : | | Exported generic functions |
| Method, host-byte-order : | | Exported generic functions |
| Method, host-or-ip : | | Exported generic functions |
| Method, minimum : | | Internal generic functions |
| Method, ns-real-condition : | | Internal generic functions |
| Method, ns-real-error : | | Internal generic functions |
| Method, socket : | | Exported generic functions |
| Method, socket-accept : | | Exported generic functions |
| Method, socket-close : | | Exported generic functions |
| Method, socket-close : | | Exported generic functions |
| Method, socket-close : | | Exported generic functions |
| Method, socket-option : | | Exported generic functions |
| Method, socket-option : | | Exported generic functions |
| Method, socket-option : | | Exported generic functions |
| Method, socket-option : | | Exported generic functions |
| Method, socket-option : | | Exported generic functions |
| Method, socket-option : | | Exported generic functions |
| Method, socket-option : | | Exported generic functions |
| Method, socket-option : | | Exported generic functions |
| Method, socket-receive : | | Exported generic functions |
| Method, socket-send : | | Exported generic functions |
| Method, socket-shutdown : | | Exported generic functions |
| Method, socket-state : | | Exported generic functions |
| Method, socket-stream : | | Exported generic functions |
| Method, state : | | Internal generic functions |
| Method, usocket-errno : | | Internal generic functions |
| Method, usocket-real-condition : | | Internal generic functions |
| Method, usocket-real-error : | | Internal generic functions |
| Method, usocket-socket : | | Internal generic functions |
| Method, wait-list : | | Internal generic functions |
| minimum : | | Internal generic functions |
| minimum : | | Internal generic functions |
|
N | | |
| ns-real-condition : | | Internal generic functions |
| ns-real-condition : | | Internal generic functions |
| ns-real-error : | | Internal generic functions |
| ns-real-error : | | Internal generic functions |
|
O | | |
| octet-buffer-to-integer : | | Exported functions |
|
P | | |
| port-from-octet-buffer : | | Exported macros |
| port-to-octet-buffer : | | Exported macros |
|
R | | |
| remove-all-waiters : | | Exported functions |
| remove-waiter : | | Exported functions |
|
S | | |
| socket : | | Exported generic functions |
| socket : | | Exported generic functions |
| socket-accept : | | Exported generic functions |
| socket-accept : | | Exported generic functions |
| socket-close : | | Exported generic functions |
| socket-close : | | Exported generic functions |
| socket-close : | | Exported generic functions |
| socket-close : | | Exported generic functions |
| socket-connect : | | Exported functions |
| socket-listen : | | Exported functions |
| socket-option : | | Exported generic functions |
| socket-option : | | Exported generic functions |
| socket-option : | | Exported generic functions |
| socket-option : | | Exported generic functions |
| socket-option : | | Exported generic functions |
| socket-option : | | Exported generic functions |
| socket-option : | | Exported generic functions |
| socket-option : | | Exported generic functions |
| socket-option : | | Exported generic functions |
| socket-receive : | | Exported generic functions |
| socket-receive : | | Exported generic functions |
| socket-send : | | Exported generic functions |
| socket-send : | | Exported generic functions |
| socket-shutdown : | | Exported generic functions |
| socket-shutdown : | | Exported generic functions |
| socket-state : | | Exported generic functions |
| socket-state : | | Exported generic functions |
| socket-stream : | | Exported generic functions |
| socket-stream : | | Exported generic functions |
| split-ipv6-address : | | Internal functions |
| split-timeout : | | Internal functions |
| state : | | Internal generic functions |
| state : | | Internal generic functions |
| stream-server-usocket-p : | | Exported functions |
| stream-usocket-p : | | Exported functions |
|
U | | |
| unimplemented : | | Exported macros |
| unsupported : | | Exported macros |
| usocket-errno : | | Internal generic functions |
| usocket-errno : | | Internal generic functions |
| usocket-p : | | Exported functions |
| usocket-real-condition : | | Internal generic functions |
| usocket-real-condition : | | Internal generic functions |
| usocket-real-error : | | Internal generic functions |
| usocket-real-error : | | Internal generic functions |
| usocket-socket : | | Internal generic functions |
| usocket-socket : | | Internal generic functions |
|
V | | |
| vector-quad-to-dotted-quad : | | Exported functions |
| vector-to-ipv6-host : | | Exported functions |
|
W | | |
| wait-for-input : | | Exported functions |
| wait-for-input-internal : | | Internal functions |
| wait-list : | | Internal generic functions |
| wait-list : | | Internal generic functions |
| wait-list-%wait : | | Internal functions |
| wait-list-map : | | Internal functions |
| wait-list-p : | | Internal functions |
| wait-list-waiters : | | Internal functions |
| with-client-socket : | | Exported macros |
| with-connected-socket : | | Exported macros |
| with-mapped-conditions : | | Exported macros |
| with-server-socket : | | Exported macros |
| with-socket-listener : | | Exported macros |
|
A.3 Variables
| Index Entry | | Section |
|
% | | |
| %wait : | | Internal structures |
|
* | | |
| *auto-port* : | | Exported special variables |
| *backend* : | | Exported special variables |
| *dummy-stream* : | | Internal special variables |
| *version* : | | Exported special variables |
| *wildcard-host* : | | Exported special variables |
|
+ | | |
| +max-datagram-packet-size+ : | | Exported constants |
| +sbcl-condition-map+ : | | Internal special variables |
| +sbcl-error-map+ : | | Internal special variables |
| +unix-errno-condition-map+ : | | Internal special variables |
| +unix-errno-error-map+ : | | Internal special variables |
| +unix-ns-error-map+ : | | Internal special variables |
|
C | | |
| connected-p : | | Exported classes |
| Constant, +max-datagram-packet-size+ : | | Exported constants |
| context : | | Exported conditions |
|
E | | |
| element-type : | | Exported classes |
| errno : | | Exported conditions |
|
F | | |
| feature : | | Exported conditions |
|
H | | |
| host-or-ip : | | Exported conditions |
|
M | | |
| map : | | Internal structures |
| minimum : | | Exported conditions |
|
R | | |
| real-condition : | | Exported conditions |
| real-condition : | | Exported conditions |
| real-error : | | Exported conditions |
| real-error : | | Exported conditions |
|
S | | |
| Slot, %wait : | | Internal structures |
| Slot, connected-p : | | Exported classes |
| Slot, context : | | Exported conditions |
| Slot, element-type : | | Exported classes |
| Slot, errno : | | Exported conditions |
| Slot, feature : | | Exported conditions |
| Slot, host-or-ip : | | Exported conditions |
| Slot, map : | | Internal structures |
| Slot, minimum : | | Exported conditions |
| Slot, real-condition : | | Exported conditions |
| Slot, real-condition : | | Exported conditions |
| Slot, real-error : | | Exported conditions |
| Slot, real-error : | | Exported conditions |
| Slot, socket : | | Exported conditions |
| Slot, socket : | | Exported classes |
| Slot, state : | | Exported classes |
| Slot, stream : | | Exported classes |
| Slot, wait-list : | | Exported classes |
| Slot, waiters : | | Internal structures |
| socket : | | Exported conditions |
| socket : | | Exported classes |
| Special Variable, *auto-port* : | | Exported special variables |
| Special Variable, *backend* : | | Exported special variables |
| Special Variable, *dummy-stream* : | | Internal special variables |
| Special Variable, *version* : | | Exported special variables |
| Special Variable, *wildcard-host* : | | Exported special variables |
| Special Variable, +sbcl-condition-map+ : | | Internal special variables |
| Special Variable, +sbcl-error-map+ : | | Internal special variables |
| Special Variable, +unix-errno-condition-map+ : | | Internal special variables |
| Special Variable, +unix-errno-error-map+ : | | Internal special variables |
| Special Variable, +unix-ns-error-map+ : | | Internal special variables |
| state : | | Exported classes |
| stream : | | Exported classes |
|
W | | |
| wait-list : | | Exported classes |
| waiters : | | Internal structures |
|
A.4 Data types
| Index Entry | | Section |
|
A | | |
| address-in-use-error : | | Exported conditions |
| address-not-available-error : | | Exported conditions |
|
B | | |
| bad-file-descriptor-error : | | Exported conditions |
|
C | | |
| Class, datagram-usocket : | | Exported classes |
| Class, stream-server-usocket : | | Exported classes |
| Class, stream-usocket : | | Exported classes |
| Class, usocket : | | Exported classes |
| Condition, address-in-use-error : | | Exported conditions |
| Condition, address-not-available-error : | | Exported conditions |
| Condition, bad-file-descriptor-error : | | Exported conditions |
| Condition, connection-aborted-error : | | Exported conditions |
| Condition, connection-refused-error : | | Exported conditions |
| Condition, connection-reset-error : | | Exported conditions |
| Condition, deadline-timeout-error : | | Exported conditions |
| Condition, host-down-error : | | Exported conditions |
| Condition, host-unreachable-error : | | Exported conditions |
| Condition, insufficient-implementation : | | Exported conditions |
| Condition, interrupted-condition : | | Exported conditions |
| Condition, invalid-argument-error : | | Exported conditions |
| Condition, invalid-socket-error : | | Exported conditions |
| Condition, invalid-socket-stream-error : | | Exported conditions |
| Condition, network-down-error : | | Exported conditions |
| Condition, network-reset-error : | | Exported conditions |
| Condition, network-unreachable-error : | | Exported conditions |
| Condition, no-buffers-error : | | Exported conditions |
| Condition, ns-condition : | | Exported conditions |
| Condition, ns-error : | | Exported conditions |
| Condition, ns-host-not-found-error : | | Exported conditions |
| Condition, ns-no-recovery-error : | | Exported conditions |
| Condition, ns-try-again-condition : | | Exported conditions |
| Condition, ns-unknown-condition : | | Exported conditions |
| Condition, ns-unknown-error : | | Exported conditions |
| Condition, operation-not-permitted-error : | | Exported conditions |
| Condition, operation-not-supported-error : | | Exported conditions |
| Condition, protocol-not-supported-error : | | Exported conditions |
| Condition, shutdown-error : | | Exported conditions |
| Condition, socket-condition : | | Exported conditions |
| Condition, socket-error : | | Exported conditions |
| Condition, socket-type-not-supported-error : | | Exported conditions |
| Condition, timeout-error : | | Exported conditions |
| Condition, unimplemented : | | Exported conditions |
| Condition, unknown-condition : | | Exported conditions |
| Condition, unknown-error : | | Exported conditions |
| Condition, unsupported : | | Exported conditions |
| connection-aborted-error : | | Exported conditions |
| connection-refused-error : | | Exported conditions |
| connection-reset-error : | | Exported conditions |
|
D | | |
| datagram-usocket : | | Exported classes |
| deadline-timeout-error : | | Exported conditions |
|
H | | |
| host-down-error : | | Exported conditions |
| host-unreachable-error : | | Exported conditions |
|
I | | |
| insufficient-implementation : | | Exported conditions |
| interrupted-condition : | | Exported conditions |
| invalid-argument-error : | | Exported conditions |
| invalid-socket-error : | | Exported conditions |
| invalid-socket-stream-error : | | Exported conditions |
|
N | | |
| network-down-error : | | Exported conditions |
| network-reset-error : | | Exported conditions |
| network-unreachable-error : | | Exported conditions |
| no-buffers-error : | | Exported conditions |
| ns-condition : | | Exported conditions |
| ns-error : | | Exported conditions |
| ns-host-not-found-error : | | Exported conditions |
| ns-no-recovery-error : | | Exported conditions |
| ns-try-again-condition : | | Exported conditions |
| ns-unknown-condition : | | Exported conditions |
| ns-unknown-error : | | Exported conditions |
|
O | | |
| operation-not-permitted-error : | | Exported conditions |
| operation-not-supported-error : | | Exported conditions |
|
P | | |
| Package, usocket : | | The usocket package |
| protocol-not-supported-error : | | Exported conditions |
|
S | | |
| shutdown-error : | | Exported conditions |
| socket-condition : | | Exported conditions |
| socket-error : | | Exported conditions |
| socket-type-not-supported-error : | | Exported conditions |
| stream-server-usocket : | | Exported classes |
| stream-usocket : | | Exported classes |
| Structure, wait-list : | | Internal structures |
| System, usocket : | | The usocket system |
|
T | | |
| timeout-error : | | Exported conditions |
|
U | | |
| unimplemented : | | Exported conditions |
| unknown-condition : | | Exported conditions |
| unknown-error : | | Exported conditions |
| unsupported : | | Exported conditions |
| usocket : | | The usocket system |
| usocket : | | The usocket package |
| usocket : | | Exported classes |
|
W | | |
| wait-list : | | Internal structures |
|