USocket ライブラリで、本当に不可解な動作に遭遇しました。次のスニペットを検討してください。
(defvar server-socket (usocket:socket-listen "localhost" 43593
:element-type
'(unsigned-byte 8)))
(defvar client-connection (usocket:socket-accept server-socket))
;in a separate terminal, type "telnet localhost 43593".
;then type some text and hit enter.
(listen (usocket:socket-stream client-connection))
=> NIL
なぜこうなった?へ:element-type '(unsigned-byte 8)
の引数を省略するとusocket:socket-listen
、問題なく動作します。任意のバイトを文字として表すことができないかどうかは理解できましたが (たとえば、utf-8 エンコーディングには無効なバイト シーケンスがあります)、逆 (バイトで表すことができない文字) は、特にネットワークでは意味がありません。環境。
(役立つ場合に備えて、Lubuntu 15.10、USocket 0.6.3.2 で clisp-2.49 を実行しています)。