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是從插座上拿起來的,但我不明白。這不像服務器會知道哪個流是最後一個流。
假設沒有錯誤,該循環如何結束?
你知道循環通常如何結束嗎? –