本文简要介绍ruby语言中  UNIXServer.accept_nonblock  的用法。
用法
accept_nonblock([options]) → unixsocket在为底层文件说明符设置 O_NONBLOCK 后,使用 accept(2) 接受传入连接。它为传入连接返回一个接受的 UNIXSocket 。
示例
require 'socket'
serv = UNIXServer.new("/tmp/sock")
begin # emulate blocking accept
  sock = serv.accept_nonblock
rescue IO::WaitReadable, Errno::EINTR
  IO.select([serv])
  retry
end
# sock is an accepted socket.如果对  UNIXServer#accept_nonblock  的调用失败,请参阅  Socket#accept  以了解可能引发的异常。
 UNIXServer#accept_nonblock  可能引发与accept(2) 失败相对应的任何错误,包括Errno::EWOULDBLOCK。
如果异常是 Errno::EWOULDBLOCK、Errno::EAGAIN、Errno::ECONNABORTED 或 Errno::EPROTO,则通过  IO::WaitReadable  对其进行扩展。所以 IO::WaitReadable 可以用来挽救重试accept_nonblock的异常。
通过将关键字参数 exception 指定为 false ,您可以指示  accept_nonblock  不应引发  IO::WaitReadable  异常,而是返回符号 :wait_readable。
参看
相关用法
- Ruby UNIXServer.accept用法及代码示例
- Ruby UNIXServer.new用法及代码示例
- Ruby UNIXServer.listen用法及代码示例
- Ruby UNIXServer.sysaccept用法及代码示例
- Ruby UNIXSocket.new用法及代码示例
- Ruby UNIXSocket.addr用法及代码示例
- Ruby UNIXSocket.recv_io用法及代码示例
- Ruby UNIXSocket.recvfrom用法及代码示例
- Ruby UNIXSocket.peeraddr用法及代码示例
- Ruby UNIXSocket.send_io用法及代码示例
- Ruby UNIXSocket.pair用法及代码示例
- Ruby UNIXSocket.path用法及代码示例
- Ruby UndefinedConversionError.source_encoding用法及代码示例
- Ruby UnboundMethod.original_name用法及代码示例
- Ruby URI.parse用法及代码示例
- Ruby UID.change_privilege用法及代码示例
- Ruby Util.unescape用法及代码示例
- Ruby Util.url_encode用法及代码示例
- Ruby UnboundMethod.bind用法及代码示例
- Ruby URI模块用法及代码示例
- Ruby UID.euid用法及代码示例
- Ruby UncaughtThrowError类用法及代码示例
- Ruby Util.pretty用法及代码示例
- Ruby UID.uid用法及代码示例
- Ruby UnwindDetails.all_requirements用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 UNIXServer.accept_nonblock。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
