diff options
Diffstat (limited to 'src/main.lisp')
-rw-r--r-- | src/main.lisp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main.lisp b/src/main.lisp new file mode 100644 index 0000000..ccebc55 --- /dev/null +++ b/src/main.lisp @@ -0,0 +1,20 @@ +(defun make-server () + (let ((socket (make-instance 'sb-bsd-sockets:inet-socket + :type :stream :protocol :tcp))) + (sb-bsd-sockets:socket-bind socket #(127 0 0 1) 8080) + (sb-bsd-sockets:socket-listen socket 5) + socket)) + +(defparameter *endl* (format nil "~c~c" #\Return #\Newline)) +(defparameter *message* + (format nil "~{~A~}" (list "HTTP/1.1 200 Ok" *endl* + (format nil "Content-Length: ~a" (length "hello there")) + *endl* *endl* + "hello there" *endl*))) + +(defun handler (server) + (let ((socket (sb-bsd-sockets:socket-accept server)) + (buf (make-array 1028 :element-type 'character))) + (sb-bsd-sockets:socket-receive socket buf nil) + (write-sequence buf *standard-output*) + (sb-bsd-sockets:socket-send socket *message* nil))) |