3

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")

しかし、それは nil を返します。

どうすれば問題を解決できますか?? どうもありがとう。

4

1 に答える 1