如何使用cl async在Lisp中检索套接字对等方的地址
我正在使用SBCL进行cl async的实验,我不知道如何检索 我正在进行通信的套接字的IP地址 我在GNULinux和Telent1.9.4上使用SBCL1.4.16 套接字对象中的如何使用cl async在Lisp中检索套接字对等方的地址,lisp,common-lisp,ip-address,sbcl,Lisp,Common Lisp,Ip Address,Sbcl,我正在使用SBCL进行cl async的实验,我不知道如何检索 我正在进行通信的套接字的IP地址 我在GNULinux和Telent1.9.4上使用SBCL1.4.16 套接字对象中的ADDRESS插槽似乎未绑定,我无法尝试从较低级别的libuv绑定中提取 我使用的是文档中的默认示例,其中添加了 下面是评论 从 (取消我的回显服务器() (格式t“启动服务器~%”) (as:tcp服务器nil 9003;nil是“0.0.0.0” (lambda(套接字数据) (描述插座) ;将数据回显到套接字
ADDRESS
插槽似乎未绑定,我无法尝试从较低级别的libuv绑定中提取
我使用的是文档中的默认示例,其中添加了
下面是评论
从
(取消我的回显服务器()
(格式t“启动服务器~%”)
(as:tcp服务器nil 9003;nil是“0.0.0.0”
(lambda(套接字数据)
(描述插座)
;将数据回显到套接字中
(as:写入套接字数据套接字数据))
(lambda(err)(格式t“侦听器事件:~a~%”err)
接住信号
(as:信号处理程序2(lambda(sig)(声明(忽略sig))(as:退出事件循环)))
(as:启动事件循环#'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
#
[标准对象]
插槽:实例分配:
C=#(SB-SYS:INT-SAP#X7F3EEC021490)
数据=零
关闭=零
漏读缓冲区=T
地址=#
缓冲区=#S(FAST-IO:OUTPUT-BUFFER。。
BUFFERINGP=NIL
已连接=T
方向=:英寸
地址槽出人意料地没有绑定
有人遇到过这个问题吗?我发现该项目的回购协议中存在同样的问题,因此我结束了这个问题,因为似乎没有干净的解决方案。对于我的项目,我将遵循作者的建议,在服务前放置一个代理。
我相信您可以为cl async做出贡献!