मेरे पास एक रूबी टीसीपीएसकेट क्लाइंट है जो सर्वर से जुड़ा हुआ है।टीसीपीएसकेट (या बंद सॉकेट का पता लगाने के तरीके को फिर से कनेक्ट करें)
मैं यह देखने के लिए कैसे जांच सकता हूं कि डेटा भेजने से पहले सॉकेट कनेक्ट है या नहीं?
क्या मैं डिस्कनेक्ट की गई टीसीपीएसकेट को "बचाव" करने का प्रयास करता हूं, फिर से कनेक्ट करता हूं और फिर भेजता हूं? यदि हां, तो क्या किसी के पास एक साधारण कोड नमूना है क्योंकि मुझे नहीं पता कि कहां से शुरू करना है :(
मुझे बहुत गर्व था कि मैं रेल में लगातार जुड़े क्लाइंट टीसीपीएसकेट प्राप्त करने में कामयाब रहा। फिर सर्वर ने क्लाइंट को मारने का फैसला किया और यह सब बिखर गया;)
संपादित
मैं इस कोड का उपयोग किया है समस्याओं में से कुछ दौर पाने के लिए - यह फिर से कनेक्ट करने के लिए यदि कनेक्ट नहीं की कोशिश करेंगे, लेकिन मामला अगर संभाल नहीं होगा सर्वर नीचे है (यह पुनः प्रयास जारी रहेगा)। क्या यह सही दृष्टिकोण की शुरुआत है? धन्यवाद
def self.write(data)
begin
@@my_connection.write(data)
rescue Exception => e
@@my_connection = TCPSocket.new 'localhost', 8192
retry
end
end
इसके अलावा, सॉकेट पर एक बंद विधि होनी चाहिए। मैं थोड़ा जंगली लेकिन आसानी से परीक्षण/irb/pry में पुष्टि की हूँ –