Добрый вечер,
хотелось бы в общих чертах понять как реализуется простой сервер. Выскажу уже имеющиеся мысли и прошу поправить и дополнить. Также хотелось бы узнать как обычно реализуют поступление команд и как представлены сами команды.
На данный момент я бы сделал что-то типа такого -
(defun start-server (port-in port-out decoding coding data-manipulation data)
(with-open-connection (in port-in out port-out)
(loop
(transfer :out out (funcall coding data))
(let* ((response (transfer :in in))
(decod-response (funcall decoding response)))
(funcall data-manipulation decod-response))
(funcall (input-command)))))