0

我正在尝试使用串行端口 gem 读取 Ruby 中的串行端口。问题是有时没有数据要读取,当我告诉程序读取串行端口时,程序挂起......我试过使用sp.read,sp.readlinesp.readlines; 它们都会导致程序阻塞(在 Windows 下)。

有谁知道是否有一种不会导致阻塞的方法?基本上,我希望如果没有要读取的数据,

读取结果为零。

谢谢。

4

1 回答 1

2

您可以使用IO#read_nonblock

begin
  result = io.read_nonblock(maxlen)
rescue IO::WaitReadable # this is raised when there's no data in the stream
  # don't wait and return nil
  result = nil
end
于 2012-11-28T10:55:32.177 回答