summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorriton <riton@riton.home>2025-07-22 22:30:11 +0300
committerriton <riton@riton.home>2025-07-22 22:30:11 +0300
commitc437fe7dcc5291d9ce4c978da7b6947ec096ecb5 (patch)
tree08d108fc77b101abe62be2d355fabc86415a9b77
proje başlangıcı
-rw-r--r--.gitignore1
-rw-r--r--dağ.asd9
-rw-r--r--src/main.lisp20
3 files changed, 30 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e4e5f6c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+*~ \ No newline at end of file
diff --git a/dağ.asd b/dağ.asd
new file mode 100644
index 0000000..22e5237
--- /dev/null
+++ b/dağ.asd
@@ -0,0 +1,9 @@
+(defsystem dağ
+ :author "Emre Akan"
+ :description "Web frameworkü"
+ ;; :depends-on ()
+ :pathname "src/"
+ :components ((:file "main")
+ ;; (:module "json"
+ ;; :components (()))
+ ))
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)))