gpt4 book ai didi

ruby - Ruby TCPSocket 超时是如何定义的?

转载 作者:数据小太阳 更新时间:2023-10-29 06:42:57 26 4
gpt4 key购买 nike

$ irb
1.9.3-p448 :001 > require 'socket'
=> true
1.9.3-p448 :002 > TCPSocket.new('www.example.com', 111)

给予

Errno::ETIMEDOUT: Operation timed out - connect(2)

问题:

  • 如何为 TCPSocket.new 定义超时值?
  • 我如何才能正确捕获超时(或者,通常是套接字)异常?

最佳答案

至少从 2.0 开始就可以简单地使用 Socket::tcp :

Socket.tcp("www.ruby-lang.org", 10567, connect_timeout: 5) {}

注意表达式末尾的 block ,它用于在建立连接时关闭连接。

对于旧版本,@falstru 的回答似乎是最好的。

关于ruby - Ruby TCPSocket 超时是如何定义的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21014272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com