为什么IOLib中的“receive-from”函数总是抛出EWOULDBLOCK异常?

时间:2011-12-10 06:36:47

标签: network-programming io lisp common-lisp

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

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

1 个答案:

答案 0 :(得分:4)

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

(setf (iolib.streams:fd-non-blocking connected-socket) t)