0

具体使用 ccl,我试图在同一个程序中设置两个套接字作为 fifo 数据结构。

为此,我一直在站着测试代码来锻炼我对 api 的理解,现在我遇到了一个我无法弄清楚的问题。下面的代码snipped设置了两个socket,一个listen,一个连接listen,并在listen socket上接受连接(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))))
4

1 回答 1

1

原来挂起是在读取调用上,因为....在写入调用之后我需要 (stream-force-output)。测试和工作。套接字似乎也不会在没有明确调用的情况下关闭(关闭 lsock、tsock 和流......我想知道这是否是一个错误?不过是不同的问题。

于 2015-06-26T00:05:56.460 回答