我正在尝试在 lisp 中使用套接字来创建连接。使用 sbcl,我发现“usocket”可用。但我未能在服务器和客户端之间发送字符串。这是代码:
服务器:
(ql:quickload "usocket")
(use-package 'usocket)
(defun default-tcp-handler (stream) ; null
(declare (type stream stream))
(terpri stream))
(defparameter *us* (socket-server "127.0.0.1" 4547 #'default-tcp-handler))
(defparameter *s* (socket-accept *us*))
(defparameter *ss* (usocket:socket-stream *s*))
客户:
(ql:quickload "usocket")
(use-package 'usocket)
(defparameter *us* (socket-connect "127.0.0.1" 4547))
(defparameter *st* (usocket:socket-stream *us*))
我先运行了服务器代码,它冻结了。然后我运行客户端代码。但服务器似乎没有任何反应。我试图将字符串格式化为st流:
(format *st* "hello, server")
但它返回零。
我该如何解决这个问题?非常感谢。