Ich habe einen Ruby Tcpsocket Client, der mit einem Server verbunden ist.tcpsocket wiederverbinden (oder wie man geschlossenen Socket erkennt)
Wie kann ich überprüfen, ob der Socket angeschlossen ist, bevor ich die Daten sende?
Versuche ich, einen getrennten tcpsocket zu "retten", erneut zu verbinden und dann erneut zu senden? Wenn ja, hat jemand ein einfaches Codebeispiel, da ich nicht weiß, wo ich anfangen soll :(
Ich war ziemlich stolz, dass ich es geschafft habe, einen dauerhaft verbundenen Client tcpsocket in Schienen zu bekommen. Dann entschied der Server, den Client zu töten und alles fiel auseinander;)
bearbeiten
ich diesen Code verwendet haben rund um einige der Probleme zu bekommen - es wird versuchen, wieder zu verbinden, wenn nicht angeschlossen, aber nicht den Fall behandeln, wenn die Server ist ausgefallen (es wird immer wieder versuchen). Ist dies der Beginn des richtigen Ansatzes? Dank
def self.write(data)
begin
@@my_connection.write(data)
rescue Exception => e
@@my_connection = TCPSocket.new 'localhost', 8192
retry
end
end
Auch sollte es eine geschlossene Methode auf Socket sein. Ich bin ein wenig eingerostet, aber leicht getestet/bestätigt in irb/py –