db-sockets is an unsupported package for SBCL and/or CMUCL which implements a lot of the BSD sockets API.
See usocket for a portable sockets implementation across many lisp implementations.
Please note: db-sockets is unsupported by its author.
- If you are using SBCL, use the sb-bsd-sockets contrib instead. It's basically the same but newer, and it comes with SBCL; loading it is a simple matter of (progn (require 'asdf) (require 'sb-bsd-sockets))
- If you are using CMUCL, db-sockets is still available but may not work e.g. when new versions of gcc or CMUCL are released. I (email@example.com) will review and apply patches to fix bugs if I'm sent them, but I no longer use it myself, so they aren't going to get more than a cursory testing. You might like to adopt the package: contact me if you're interested.
I just (3/21/04) attempted to use db-sockets in CMUCL 18e with gcc version 3.3.2. Did not work because of multi line strings in the generated foo.c. Problem is in c-for-function in def-to-lisp.lisp. Changed :right-margin nil to :right-margin 100000. Fixes problem.
A short feature list:
based quite closely on the BSD API. This makes it sensible to use the system manual pages to find out what's happening, and also allows applications to set arbitrary socket options and so forth
Supports the Internet (TCP and UDP) protocol family and the File protocol family ("Unix-domain sockets") internally, uses a C program to determine types and constants, so can be ported to new POSIXish systems with much less effort than the builtin CMUCL socket code
:(download "db-sockets.tar.gz" :from :cclan)