Язык Common LISP Clozure - программирование сокета TCP - отправка ответа

Это не моя область знаний, но я работал в направляющих приблизительно в течение года, и я думаю, что ActiveRecord решил большую часть проблемы Отображения DB. Я понимаю, что это имеет несколько проблем, но я думаю, что это сделало фантастическое задание.

я не думаю, что его сообщение приняло во внимание возможность самой платформы (в этом случае AcitveRecord/Rails) определение базы данных AND the Object Model, которая - насколько я могу сказать - заставляет проблему уйти.

, Так как это - противоположность первых двух ответов (в основном, что сообщение устарело), я чувствую, что, вероятно, не понимаю что-то; Если это так, исправьте меня вместо того, чтобы просто провалить меня, потому что я думаю, что существует важная суть, которую я упускаю.

6
задан Jan Deinhard 18 June 2012 в 14:30
поделиться

2 ответа

В документации 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)
8
ответ дан 9 December 2019 в 20:46
поделиться

В SBCL (с использованием usocket) я использую функцию SOCKET-STREAM для возврата потока lisp, затем использую FORMAT, WRITE и тому подобное, чтобы отправлять вещи.

4
ответ дан 9 December 2019 в 20:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: