gpt4 book ai didi

lisp - 我如何使用 cl-async 在 Lisp 中检索套接字对等方的地址

转载 作者:太空宇宙 更新时间:2023-11-03 18:38:36 24 4
gpt4 key购买 nike

我正在使用 SBCL 试验 cl-async,我不知道如何检索我正在通信的套接字的 IP 地址。

我在带有 telent 1.9.4 的 gnu-linux 上使用 SBCL 1.4.16

套接字对象中的 ADDRESS 插槽似乎未绑定(bind),我尝试从较低级别的 libuv 绑定(bind)中提取失败

我正在使用文档中的默认示例,并添加了行下面的评论来自 http://orthecreedence.github.io/cl-async/examples

(defun my-echo-server ()
(format t "Starting server.~%")
(as:tcp-server nil 9003 ; nil is "0.0.0.0"
(lambda (socket data)
(describe socket)
;; echo the data back into the socket
(as:write-socket-data socket data))
(lambda (err) (format t "listener event: ~a~%" err)))
;; catch sigint
(as:signal-handler 2 (lambda (sig) (declare (ignore sig)) (as:exit-event-loop))))

(as:start-event-loop #'my-echo-server)

当我使用 netcat 或 telnet 连接并发送内容时,输出是:

#<CL-ASYNC:TCP-SOCKET {1004DC0BF3}>
[standard-object]

Slots with :INSTANCE allocation:
C = #.(SB-SYS:INT-SAP #X7F3EEC021490)
DATA = NIL
CLOSED = NIL
DRAIN-READ-BUFFER = T
ADDRESS = #<unbound slot>
BUFFER = #S(FAST-IO:OUTPUT-BUFFER..
BUFFERINGP = NIL
CONNECTED = T
DIRECTION = :IN

ADDRESS 插槽出人意料地未绑定(bind)...

有人遇到过这个问题吗?

最佳答案

我在项目的 repo 上发现了一个存在同样问题的问题,所以我关闭了这个问题,因为似乎没有干净的解决方案。对于我的项目,我将遵循作者的建议,在服务前面放置一个代理。 issue

关于lisp - 我如何使用 cl-async 在 Lisp 中检索套接字对等方的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56351277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com