Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets Clozure Common Lisp-TCP套接字编程-发送回复_Sockets_Common Lisp_Ccl - Fatal编程技术网

Sockets Clozure Common Lisp-TCP套接字编程-发送回复

Sockets Clozure Common Lisp-TCP套接字编程-发送回复,sockets,common-lisp,ccl,Sockets,Common Lisp,Ccl,我有一个非常小的程序,它打开一个套接字并接受一个连接。然后它获取远程IP和端口 我想向远程计算机(telnet)发送一条短信并关闭连接 我无法确定哪个函数用于向telnet客户端发送消息 列表中列出了一个名为“发送到”的函数,但它表示这是用于UDP套接字的,我正在使用TCP套接字 我希望有人能告诉我什么是正确的功能,或者,如果“发送到”是正确的功能,如何正确使用它 谢谢 (setq my-socket (ccl:make-socket :connect :passive :format :tex

我有一个非常小的程序,它打开一个套接字并接受一个连接。然后它获取远程IP和端口

我想向远程计算机(telnet)发送一条短信并关闭连接

我无法确定哪个函数用于向telnet客户端发送消息

列表中列出了一个名为“发送到”的函数,但它表示这是用于UDP套接字的,我正在使用TCP套接字

我希望有人能告诉我什么是正确的功能,或者,如果“发送到”是正确的功能,如何正确使用它

谢谢

(setq my-socket (ccl:make-socket :connect :passive :format :text
        :local-port 20000 :reuse-address t))

(setq connection (ccl:accept-connection my-socket))

(setq remote-host (ccl:remote-host connection))

(setq remote-port (ccl:remote-port connection))

在SBCL(使用usocket)中,我使用SOCKET-STREAM函数返回一个lisp流,然后使用FORMAT、WRITE等来发送信息。

CCL:ACCEPT-CONNECTION的文档说它返回一个流

因此,您可以对该流使用Common Lisp的常规I/O操作(例如:PRINC)。有关I/O操作,请参阅关于“流”和“打印机”的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)