1
"socket of lisp"12 장과 13 장에서 "lisp의 땅"에서 배우는 동안. lispbox를 사용하므로 소켓을 설치해야합니다. 마지막으로 usocket을 찾았습니다. 이것은 웹 서버를 bulid하기 위해 usocket을 사용하는 방법에 대한 샘플입니다. (; usocket 유도체 클래스) lisp src of webserver.lisp
(defun serve (request-handler)
"serve as a web server,used to handle request
like 'http://127.0.0.1:8080/greeting'"
(let ((socket (usocket:socket-listen "0.0.0.0" 8080 :reuse-address t)))
(unwind-protect
(loop (with-open-stream (stream
(usocket:socket-stream
(usocket:socket-accept socket)))
(let* ((url (parse-url (read-line stream)))
(path (car url))
(header (get-header stream))
(params (append (cdr url)
(get-content-params stream header)))
(*standard-output* stream))
(funcall request-handler path header params))))
(usocket:socket-close socket))))
원점 http://landoflisp.com/webserver.lisp
(defun serve (request-handler)
(let ((socket (socket-server 8080)))
(unwind-protect
(loop (with-open-stream (stream (socket-accept socket))
(let* ((url (parse-url (read-line stream)))
(path (car url))
(header (get-header stream))
(params (append (cdr url)
(get-content-params stream header)))
(*standard-output* stream))
(funcall request-handler path header params))))
(socket-server-close socket))))