小编Ban*_*oos的帖子

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

我正在尝试使用SBCL进行cl-async,我无法弄清楚如何检索正在通信的套接字的IP地址。

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

ADDRESS插座对象裂缝出现的未绑定的,我没在试图从下级libuv提取结合

我正在使用文档中的默认示例,并在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)
            ;; echo the data back into the socket

            ;; echo the data back into the socket
            (describe 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)
Run Code Online (Sandbox Code Playgroud)

一旦我连接并使用netcat或telnet发送内容,输出为:

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

Slots with :INSTANCE allocation:
  C                              = …
Run Code Online (Sandbox Code Playgroud)

lisp sbcl ip-address common-lisp

5
推荐指数
1
解决办法
71
查看次数

标签 统计

common-lisp ×1

ip-address ×1

lisp ×1

sbcl ×1