(defun read-message (stream)
(let* ((magic (make-array 4))
(command (make-array 12))
(size (make-array 4))
(checksum (make-array 4)))
(read-sequence magic stream)
;; (read-sequence command stream)
(dotimes (i 12 t)
(push (read-char stream) command))
(read-sequence size stream)
(read-sequence checksum stream)
(format t "~a" command)))
(defun read-write-and-close ()
(let* ((sock
(usocket:socket-connect "localhost" 8333 :element-type '(unsigned-byte 8))))
(write-command "version"
(make-version-message)
'write-version-message
(usocket:socket-stream sock))
(read-message (usocket:socket-stream sock))
(usocket:socket-close sock)))
(defun read-message (stream)
(let* ((magic (make-array 4))
(command (make-array 12))
(size (make-array 4))
(checksum (make-array 4)))
(read-sequence magic stream)
(read-sequence command stream)
(read-sequence size stream)
(read-sequence checksum stream)
(format t "~a" command)))
(defun read-write-and-close ()
(let* ((sock
(usocket:socket-connect "localhost" 8333 :element-type '(unsigned-byte 8))))
(write-command "version"
(make-version-message)
'write-version-message
(usocket:socket-stream sock))
(read-message (usocket:socket-stream sock))
(usocket:socket-close sock)))