【问题标题】:Ruby detect socket close while recvRuby在recv时检测套接字关闭
【发布时间】:2012-09-01 16:30:07
【问题描述】:

我有一个 ruby​​ 套接字客户端连接到将随时关闭连接的服务器。 这是我的代码:

@conn = TCPSocket.new address[0], address[1]
while xml = @conn.recv(4096)
  // do something
end

如何在此处检测套接字关闭?

【问题讨论】:

    标签: ruby sockets


    【解决方案1】:

    您可能已经为自己回答了这个问题,但为了记录......

    recv 方法阻塞,直到至少有一个字节可用,或者套接字关闭。因此,您可以循环直到 recv 返回空字符串:

    @conn = TCPSocket.new address[0], address[1]
    while true
      xml = @conn.recv(4096)
      break if xml.empty?
      // do something
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-21
      • 2016-04-04
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      • 2019-02-27
      • 1970-01-01
      • 2016-11-25
      相关资源
      最近更新 更多