Hi everyone,
Just got to chapter 13 and guess what i'm using sbcl as well. I
managed to get the code in the book to work without changes by adding
conditional definitions for sbcl to have the same functions that are
present in clisp. I thought about using usocket or some other thing
but decided to try it out in plain sbcl code.
Here's my sbcl specific additions:
#+sbcl
(defun socket-server (port)
(let ((socket (sb-bsd-sockets:make-inet-socket :stream :tcp)))
(when socket
(sb-bsd-sockets:socket-bind socket #(127 0 0 1) port)
(sb-bsd-sockets:socket-listen socket 1)
socket)))
#+sbcl
(defun socket-accept (socket)
(let ((connected-socket (sb-bsd-sockets:socket-accept socket)))
(sb-bsd-sockets:socket-make-stream connected-socket
:input t
:output t)))
#+sbcl
(defun socket-server-close (socket)
(sb-bsd-sockets:socket-close socket))
Cheers,
Alex