मेरा सर्वर-ऐप एक TIdTCPServer का उपयोग करता है, कई क्लाइंट ऐप्स सर्वर से कनेक्ट करने के लिए TIdTCPClients का उपयोग करते हैं (सभी कंप्यूटर एक ही लैन में हैं)।सर्वोत्तम अभ्यास: प्रत्येक स्थानांतरण के बाद टीसीपी/आईपी कनेक्शन खोलें या बंद करें?
कुछ ग्राहकों को केवल हर दो मिनट में सर्वर से संपर्क करने की आवश्यकता होती है, अन्य हर बार एक बार और एक दूसरे के बारे में 20 बार ऐसा करेंगे।
यदि मैं किसी ग्राहक और सर्वर के बीच कनेक्शन को खोलता हूं, तो मैं पुनः कनेक्ट कर दूंगा, लेकिन यह जांचना होगा कि कनेक्शन गुम हो गया है या नहीं।
यदि मैं प्रत्येक स्थानांतरण के बाद कनेक्शन बंद करता हूं, तो उसे हर बार फिर से कनेक्ट करना होगा, लेकिन यह जांचने की कोई आवश्यकता नहीं है कि कनेक्शन अभी भी है या नहीं।
ऐसा करने का सबसे अच्छा तरीका क्या है?
डेटा स्थानांतरण की आवृत्ति पर मुझे सामान्य रूप से कनेक्शन को खुला रखना चाहिए?
दोनों परिदृश्यों के लिए अन्य फायदे/नुकसान क्या हैं?
एक नया टीसीपी कनेक्शन बनाने का ओवरहेड मुख्य रूप से कुछ राउंडट्रिप्स है। और वे लैन पर बहुत तेज हैं। तो मैं इसे इस्तेमाल करने के कुछ सेकंड के बाद कनेक्शन बंद कर दूंगा। – CodesInChaos
लेकिन मैं इसे पहले तरीके से लिखता हूं (सबसे अधिक संभावना तत्काल बंद) और फिर जांच करें कि प्रदर्शन संतोषजनक है या नहीं। – CodesInChaos
इस प्रश्न का मेरा उत्तर देखें: http://stackoverflow.com/questions/4872800/socket-open-and-close-on-1-sec-or-to-hold-open/4873002#4873002 –