Network programming 为什么该功能“不可用”;从“收到”;在IOLib中总是抛出eWooldBlock异常吗?

Network programming 为什么该功能“不可用”;从“收到”;在IOLib中总是抛出eWooldBlock异常吗?,network-programming,io,lisp,common-lisp,Network Programming,Io,Lisp,Common Lisp,无论我重试多少次,它总是抛出ewoodblock,并且从套接字中不读取任何内容。为什么?谢谢。首先,您必须将套接字流设置为非阻塞状态: (setf buf (make-array 1024 :element-type 'unsigned-byte)) (receive-from socket :buffer buf :start 0 :end 1024)) 首先,必须将套接字流设置为非阻塞状态: (setf b

无论我重试多少次,它总是抛出
ewoodblock
,并且从套接字中不读取任何内容。为什么?谢谢。

首先,您必须将套接字流设置为非阻塞状态:

(setf buf (make-array 1024 :element-type 'unsigned-byte))
(receive-from socket
              :buffer buf
              :start 0
              :end 1024))

首先,必须将套接字流设置为非阻塞状态:

(setf buf (make-array 1024 :element-type 'unsigned-byte))
(receive-from socket
              :buffer buf
              :start 0
              :end 1024))

非常感谢,我想我已经找到了问题所在,我使用set-io-handler()来监视套接字的读取事件,但是参数“function”是通过调用另一个返回值不是函数的函数来填充的,因此调用set-io-handler()时总是调用该函数,但实际上套接字还没有准备好,而且,读取事件的回调函数设置不正确。此外,是否有关于IOLib的完整文档?现在我只能读它的源代码了,对于初学者来说并不容易……IOLib上有两个有用的文档:and。我还听说Stellia Ionescu承诺创建更全面的文档。非常感谢,我想我已经找到了问题所在,我使用set-io-handler()来监视套接字的读取事件,但是参数“function”是通过调用另一个返回值不是函数的函数来填充的,因此,调用set-io-handler()时总是调用该函数,但实际上套接字还没有准备好,而且读取事件的回调函数也没有正确设置。此外,是否有关于IOLib的完整文档?现在我只能读它的源代码了,对于初学者来说并不容易……IOLib上有两个有用的文档:and。我还听说Stellia Ionescu承诺创建更全面的文档。