मुझे लगता है कि आपको इसके बजाय अपने ऑपरेटिंग सिस्टम को कॉन्फ़िगर करने की आवश्यकता है। प्रोग्राम द्वारा कीपलाइव पैरामीटर बदलना अभी तक व्यापक रूप से समर्थित नहीं है। इससे आपको मदद मिलनी चाहिए:
नेटवर्क त्रुटियों का पता लगाने के लिए TCP Keepalive का उपयोग करना
इसके अलावा आपके पैरामीटर बुरी तरह चुने गए हैं। अगर tcp_keepalives_count=1
काम किया तो एक खोया हुआ पैकेट भी आपका कनेक्शन छोड़ देगा। और सिंगल पैकेट अक्सर खो जाते हैं। मैं /etc/sysctl.conf
में निम्नलिखित का उपयोग करूंगा MacOSX/FreeBSD पर:
net.inet.tcp.keepidle =60000
net.inet.tcp.keepintvl =10000
OS तब अधिकतम 140 सेकंड (निष्क्रिय के 60 सेकंड) पर कनेक्शन छोड़ देगा + कनेक्टिविटी खोने के बाद 10 सेकंड के अंतराल में 8 रखवाले पैकेट।