ruby 2.5: 在 tcp 套接字的读取上设置超时
ruby 2.5: set timeout on tcp socket's read
Ruby 2.5 的 doc
说:
myTCPServer = Socket.tcp(host, port, nil, nil, :connect_timeout=60)
,
它接受的唯一选项是 :connect_timeout
.
(Ruby 2.0的doc可能有复制粘贴错误,
声称 :timeout
是另一种选择,但没有说明该选项的作用。无论如何,该选项在 Ubuntu 18.04 LTS 上的 2.5.1p57 中不起作用。)
gem tcp_timeout 是制作 TCP 套接字的最佳方法吗,其连接的会话可以 读取超时 指定的持续时间,例如通过 mySession.gets
?
(不是 connect 上的超时。
不是写入超时。)
或IO::select
?
是的,IO::select,使用 recvfrom
而不是 gets
(可能需要等待换行符)。
Ruby 2.5 的 doc
说:
myTCPServer = Socket.tcp(host, port, nil, nil, :connect_timeout=60)
,
它接受的唯一选项是 :connect_timeout
.
(Ruby 2.0的doc可能有复制粘贴错误,
声称 :timeout
是另一种选择,但没有说明该选项的作用。无论如何,该选项在 Ubuntu 18.04 LTS 上的 2.5.1p57 中不起作用。)
gem tcp_timeout 是制作 TCP 套接字的最佳方法吗,其连接的会话可以 读取超时 指定的持续时间,例如通过 mySession.gets
?
(不是 connect 上的超时。
不是写入超时。)
或IO::select
?
是的,IO::select,使用 recvfrom
而不是 gets
(可能需要等待换行符)。