Это не моя область знаний, но я работал в направляющих приблизительно в течение года, и я думаю, что ActiveRecord решил большую часть проблемы Отображения DB. Я понимаю, что это имеет несколько проблем, но я думаю, что это сделало фантастическое задание.
я не думаю, что его сообщение приняло во внимание возможность самой платформы (в этом случае AcitveRecord/Rails) определение базы данных AND the Object Model, которая - насколько я могу сказать - заставляет проблему уйти.
, Так как это - противоположность первых двух ответов (в основном, что сообщение устарело), я чувствую, что, вероятно, не понимаю что-то; Если это так, исправьте меня вместо того, чтобы просто провалить меня, потому что я думаю, что существует важная суть, которую я упускаю.
В документации CCL: ACCEPT-CONNECTION сказано, что он возвращает поток.
Таким образом, вы можете использовать обычные операции ввода-вывода (пример: PRINC) Common Lisp с этим потоком. Для операций ввода-вывода см. Главы HyperSpec, посвященные «потокам» и «принтеру».
(defun st (port)
(ccl:with-open-socket (socket :connect :passive
:format :text
:local-port port
:reuse-address t)
(with-open-stream (stream (ccl:accept-connection socket))
(princ "CCL example response" stream))))
; example call
(st 20000)
В SBCL (с использованием usocket) я использую функцию SOCKET-STREAM для возврата потока lisp, затем использую FORMAT, WRITE и тому подобное, чтобы отправлять вещи.