首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clozure Common Lisp - TCP套接字编程-发送回复

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

Stack Overflow用户
提问于 2009-10-06 10:58:24
回答 2查看 2.4K关注 0票数 6

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

我想发送一条文本消息到远程计算机(telnet)并关闭连接。

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

Clozure manual列出了一个名为"send to“的函数,但它说它是用于UDP socket的,而我正在使用TCP socket。

我希望有人能告诉我什么是正确的函数,或者,如果"send- to“是正确的函数,如何正确使用它。

谢谢

代码语言:javascript
复制
(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))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-06 15:44:23

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

因此,您可以对该流使用Common Lisp的普通I/O操作(例如: PRINC)。有关I/O操作,请参阅HyperSpec中关于“流”和“打印机”的章节。

代码语言:javascript
复制
(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
EN

Stack Overflow用户

发布于 2009-10-06 11:05:27

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1524912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档