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 を返します。
どうすれば問題を解決できますか?? どうもありがとう。