type Dialer struct {
    ......
    // KeepAlive specifies the keep-alive period for an active
    // network connection.
    // If zero, keep-alives are enabled if supported by the protocol
    // and operating system. Network protocols or operating systems
    // that do not support keep-alives ignore this field.
    // If negative, keep-alives are disabled.
    KeepAlive time.Duration
}
type Transport struct {
    ......
// IdleConnTimeout is the maximum amount of time an idle
    // (keep-alive) connection will remain idle before closing
    // itself.
    // Zero means no limit.
    IdleConnTimeout time.Duration
}

मुझे लगता है कि कीप-अलाइव एक ऐसा समय है जिसे टीसीपी कनेक्शन को रखना चाहिए। लेकिन IdleConnTimeout एक ही चीज़ की तरह लगता है। तो उनके बीच क्या अंतर है और अगर मैं दोनों इन चरों को सेट करते हैं, तो टीसीपी कनेक्शन कितने समय तक रख सकता है?

-3
kongshuo 9 जिंदा 2020, 04:50

1 उत्तर

सबसे बढ़िया उत्तर

कीप-अलाइव शब्द का अर्थ दो संदर्भों में अलग-अलग चीजें हैं।

नेट/http परिवहन दस्तावेज़ स्थायी कनेक्शन को संदर्भित करने के लिए इस शब्द का उपयोग करता है। एक जीवित या लगातार कनेक्शन एक कनेक्शन है जिसका उपयोग एक से अधिक HTTP लेनदेन के लिए किया जा सकता है।

Transport.IdleConnTimeout फ़ील्ड निर्दिष्ट करती है कि परिवहन पहले पूल में अप्रयुक्त कनेक्शन को कितनी देर तक रखता है कनेक्शन बंद करना।

नेट डायलर दस्तावेज़ीकरण कनेक्शन के स्वास्थ्य की जांच के लिए TCP सुविधा को संदर्भित करने के लिए कीप-अलाइव शब्द का उपयोग करता है।.

Dialer.KeepAlive फ़ील्ड निर्दिष्ट करती है कि पीयर को कितनी बार TCP कीप-अलाइव जांच भेजी जाती है।

स्टैक में अलग-अलग परतों पर दो सेटिंग्स अलग-अलग काम करती हैं।

4
Cerise Limón 9 जिंदा 2020, 05:01