0
我試圖通過在紅寶石的套接字來讀取HTTP報文,出於某種原因,我的代碼保持阻斷,同時調用接收讀取數據
socket = TCPSocket.new("localhost",80)
socket.send r.join("\r\n"), 0
socket.flush
#We're only interested in the string "HTTP/1.1 XXX"
if http_status = get_http_status(socket.recv_nonblock(12))
if http_status == 200
$logger.info "Wrote #{message_packet}"
else
$logger.warn "Resubmitting message because #{line} is not 200"
@queue.publish(message)
end
end
#Get rid of the rest of the content
the_rest = socket.recv(1000)
while(the_rest != "") do
the_rest = socket.recv(1000)
end
從我瞭解recv
如果沒有數據在套接字上等待,它應該什麼都不返回?
這個問題寫得非常糟糕,缺少一些非常重要的數據,這些數據實際上使這個問題變得有意義。代碼也是錯誤的。請關閉它。 – Ceilingfish 2010-09-16 09:36:03