I'm learning CL by following along with Land of Lisp and supplementing it with my own projects. My current project has me trying to build a web server and application. However, I'm using (and want to continue using) SBCL with Eclipse, which is incompatible with the implementation-specific networking of CLISP used in the book. I've done quite a bit of googling and have read the internal SBCL reference texts on sb-bsd-sockets, but I keep running into brick walls at the most basic steps. For the moment, I'm just trying to send a stream from one SBCL REPL to another in terminal, but even this is proving impossible. I'm wondering if people on this forum could give me some advice or clarification of SBCL's socket terminology, especially on exactly how I bind a socket to an address and port (sb-bsd-sockets:socket-bind has me too confused to even know what questions to be asking).

Yeah, I found that forum post too. It looks promising but it is way more detailed than what I'm trying to do right now - the inadequate documentation of sb-bsd-sockets is extremely frustrating because it's been difficult to just mess around. Since I'm hoping to eventually build a webserver / framework with SBCL, it's important to me that I feel comfortable with a socket library. For now, that means starting two REPLs and sending a network stream between them, which that code example seems wayyyy too big for. At this point, I'm seriously considering using usockets or IOlib instead. Does anyone on this forum have experience with those socket libraries? Thanks for the help

I tried usocket, but nothing special I did with that it was when I was beginning with Lisp so my experience doesn't worth much, nonetheless I think it's better to go with a library which is supported multiplatformly.

Here's a bit of code I've written to run a socket listener with dispatch to worker threads in sbcl. I think it's pretty clear, but I can explain any part that doesn't make sense in more detail if that helps. I'm not sure what is going on with the sockets stuck in CLOSE, but it could simply be a failure on my part to clean up properly when I exit via an unexpected path (my exception/restart handling is in serious need of some work.) If any of the all-stars here have any helpful style or coding suggestions for me, I'd be happy to hear them. Note: I recognize that the use of the *server-mode* global is somewhat poor practice and should potentially be reworked.