В частности, используя ccl, я пытаюсь настроить два сокета в одной программе, чтобы они служили структурой данных fifo.
с этой целью я подготовил тестовый код, чтобы проверить свое понимание API, и теперь у меня есть проблема, которую я не могу понять. Следующий фрагмент кода устанавливает два сокета, один для прослушивания и один для подключения к прослушиванию, и принимает соединение в сокете для прослушивания (вызов accept ожидает подключения, прежде чем вернуться, что я и хочу в этом случае) , после чего пишем в один сокет и читаем из другого. код зависает, и я не знаю почему (я предполагаю, что сокеты не подключаются).
Код:
(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))))