5
我有一個連接到服務器的紅寶石tcpsocket客戶端。重新連接tcpsocket(或如何檢測關閉的套接字)
如何在發送數據之前檢查套接字是否已連接?
我是否試圖「拯救」一個斷開連接的tcpsocket,重新連接然後重新發送?如果是這樣,有沒有人有一個簡單的代碼示例,因爲我不知道從哪裏開始:(
我很自豪,我設法得到一個持久連接的客戶端tcpsocket在rails中,然後服務器決定殺死客戶端而這一切都土崩瓦解;)
編輯
我用這個代碼,以避開一些問題 - 它會嘗試重新連接,如果連接不上,但不會處理,如果情況服務器關閉(它將繼續重試)。這是正確方法的開始嗎?由於
def self.write(data)
begin
@@my_connection.write(data)
rescue Exception => e
@@my_connection = TCPSocket.new 'localhost', 8192
retry
end
end
此外,套接字上應該有一個封閉的方法。我有點生疏,但很容易在irb/pry中測試/確認 –