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(可能需要等待换行符)。