2
在Ruby HTTP-2的宝石有在底部从套接字读取数据的代码段的example客户端实现:Ruby http-2实现:eof如何工作?
while !sock.closed? && !sock.eof?
data = sock.read_nonblock(1024)
# puts "Received bytes: #{data.unpack("H*").first}"
begin
conn << data
rescue => e
puts "#{e.class} exception: #{e.message} - closing socket."
e.backtrace.each { |l| puts "\t" + l }
sock.close
end
end
我不明白,这个循环是如何终止。据推测eof是从插座上拿起来的,但我不明白。这不像服务器会知道哪个流是最后一个流。
假设没有错误,该循环如何结束?
你知道循环通常如何结束吗? –