मेरे पास एक क्लाइंट एप्लिकेशन है, जो किसी सर्वर के साथ संचार करने के लिए एक अप्रबंधित डीएल का उपयोग करता है।एक सॉकेट को बंद करने, मारने, रिलीज़ करने के लिए कैसे करें, जो कि FIN_WAIT_2 स्थिति में है?
सभी नेटवर्क-संबंधी संचालन अप्रबंधित dll के अंदर perormed कर रहे हैं। सर्वर के साथ कई संचालन के बाद, ग्राहक टीसीपी बंदरगाहों से बाहर चल रहा है।
...
TCP 192.168.11.55:56048 192.168.10.28:5000 FIN_WAIT_2
TCP 192.168.11.55:56049 192.168.10.28:5000 FIN_WAIT_2
TCP 192.168.11.55:56050 192.168.10.28:5000 FIN_WAIT_2
TCP 192.168.11.55:56051 192.168.10.27:5000 FIN_WAIT_2
TCP 192.168.11.55:56052 192.168.10.28:5000 FIN_WAIT_2
TCP 192.168.11.55:56053 192.168.10.27:5000 FIN_WAIT_2
TCP 192.168.11.55:56054 192.168.10.27:5000 FIN_WAIT_2
TCP 192.168.11.55:56055 192.168.10.27:5000 FIN_WAIT_2
TCP 192.168.11.55:56056 192.168.10.27:5000 FIN_WAIT_2
TCP 192.168.11.55:56057 192.168.10.28:5000 FIN_WAIT_2
TCP 192.168.11.55:56058 192.168.10.27:5000 FIN_WAIT_2
TCP 192.168.11.55:56059 192.168.10.28:5000 FIN_WAIT_2
TCP 192.168.11.55:56060 192.168.10.27:5000 FIN_WAIT_2
...
बंदरगाहों केवल जारी कर रहे हैं के बाद ग्राहक को बंद कर दिया जाता है: हम 'netstat -एक' का उपयोग कर netwotk की स्थिति जांचने तो हम निम्न परिणाम मिलता है।
यदि मैं डीबग मोड में वीएस प्रोजेक्ट चलाता हूं, तो यह बंदरगाहों को कभी नहीं चलाता है। लेकिन, रिलीज मोड में चलते समय, यह हो रहा है।
और मैं सर्वर और न ही ग्राहक स्रोत के लिए न पहुँच नहीं है।
कैसे जारी या उन बंदरगाहों जो FIN_WAIT_2 स्थिति में हैं को मारने के लिए?
स्थापना टाइमआउट मदद किया था, लेकिन बहुत ज्यादा नहीं। अंत में हम ग्राहक पक्ष में TCP_NODELAY पैरामीटर सेट करके समस्या को हल करने में सक्षम थे। धन्यवाद। – ulughbekula
मैक ओएस एक्स के बारे में क्या? –