具体的には ccl を使用して、同じプログラムに 2 つのソケットをセットアップして、FIFO データ構造として機能させようとしています。
そのために、私はAPIの理解を深めるためにテストコードを立ち上げてきましたが、今では理解できない問題があります。次の抜粋されたコードは、リッスンとリッスンに接続するための 2 つのソケットをセットアップし、リッスン ソケットで接続を受け入れます (受け入れ呼び出しは、戻る前に接続が着信するのを待ちます。この場合はこれが必要です)。 、その後、一方のソケットに書き込み、もう一方のソケットから読み取ります。コードがハングしますが、その理由はわかりません (ソケットが接続されていないためだと思います)。
コード:
(ccl:with-open-socket (lsock :local-port 8008 :connect :passive :address-family :internet)
(ccl:with-open-socket (tsock :address-family :internet :remote-port 8008 :remote-host "127.0.0.1")
(let ((stream (ccl:accept-connection lsock)))
(write "can you see?" :stream tsock)
(read stream))))