मैं एक सॉकेट से फिर से कनेक्ट करने का प्रयास कर रहा हूं जिसे मैंने डिस्कनेक्ट किया है लेकिन यह किसी कारण से इसकी अनुमति नहीं देगा, भले ही मैंने "reuseSocket" तर्क के साथ डिस्कनेक्ट विधि को सही कहा है।.NET में सॉकेट का पुन: उपयोग कैसे करें?
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_socket.Connect(ipAddress, port);
//...receive data
_socket.Disconnect(true); //reuseSocket = true
//...wait
_socket.Connect(ipAddress, port); //throws an InvalidOperationException:
एक बार सॉकेट डिस्कनेक्ट किया गया है, आप केवल फिर से एसिंक्रोनस रूप से, और केवल एक अलग समाप्ति बिंदु को फिर से कनेक्ट कर सकते हैं। BeginConnect को उस थ्रेड पर कॉल किया जाना चाहिए जो ऑपरेशन पूरा होने तक से बाहर नहीं निकलेगा।
मैं क्या गलत कर रहा हूं?
शायद, आपको सॉकेट का पुन: उपयोग नहीं करना चाहिए और बस एक नया बनाना चाहिए। 'डिस्कनेक्ट' को कभी भी कॉल न करें, इसे इसके बजाय 'उपयोग' में लपेटें। साथ ही, 'शटडाउन' पर कॉल करें। – usr