Comment puis-je détecter qu'une socket est à moitié ouverte? Le cas que je traite est quand l'autre côté d'une socket a envoyé un FIN et l'application Ruby a ACKed ce FIN. Y at-il un moyen pour moi de dire que la prise est dans cet état?Ruby: Comment détecter quand un côté d'un socket a été fermé
Prenez, par exemple:
require 'socket'
s = TCPServer.new('0.0.0.0', 5010)
loop do
c = s.accept
until c.closed?
p c.recv(1024)
end
end
Dans ce cas, quand je telnet dans le port 5010, je vais voir toutes mes entrées jusqu'à ce que je ferme la session telnet. À ce stade, il imprimera les chaînes vides encore et encore aussi vite que possible.
Cela semble être un double de http://stackoverflow.com/questions/61675/recovering-from-a-broken-tcp-socket-in-ruby-when-in-gets, pas sûr que cela aide tout tho! – gaqzi
Avez-vous trouvé une solution? –
Haivng le même problème. Avez-vous une solution? –