मैं एक ऐसा एप्लिकेशन बनाना चाहता हूं जो आंतरिक रूप से वेब पेजों परोसता है और उसी मशीन पर कई उदाहरणों में चलाया जा सकता है। ऐसा करने के लिए, मैं एक HttpListener
कि एक बंदरगाह है कि है पर सुनता है बनाना चाहते हैं:मैं सी # में एक यादृच्छिक बंदरगाह पर एक HttpListener कक्षा कैसे बना सकता हूँ?
- यादृच्छिक रूप से चुने
- वर्तमान में अप्रयुक्त
अनिवार्य रूप से, की तरह कुछ है कि मैं क्या चाहते हैं:
mListener = new HttpListener();
mListener.Prefixes.Add("http://*:0/");
mListener.Start();
selectedPort = mListener.Port;
मैं इसे कैसे पूरा कर सकता हूं?
आप इसके बजाय 'मिनपोर्ट'/'मैक्सपोर्ट 'स्थिरांक का उपयोग करने पर विचार करना चाहेंगे, [एमएसडीएन लिंक] (http://msdn.microsoft.com/en-us/library/vstudio/system.net.ipendpoint_fields (v = बनाम .110) .aspx) –
@ जोसेफलेनॉक्स, 'मिनपोर्ट 'निरंतर शून्य है। उत्तर में दिया गया न्यूनतम मान अधिक उपयुक्त है। –
@Snooganz, पकड़ ब्लॉक शायद 'mListener' का निपटान करना चाहिए। साथ ही, 'प्रयुक्त पोर्ट्स' रैखिक सदस्यता परीक्षण के लिए '' सेट हो सकता है। व्यक्तिगत रूप से मैं विधि के भीतर 'प्रयुक्त पोर्ट' का दायरा लेता हूं (या इसे पूरी तरह से छुटकारा पाता हूं) जैसे कि आपने इसे बहुत लंबे समय तक चलने वाली प्रणाली में उपयोग किया है, तो आप अंततः बंदरगाहों से बाहर निकल सकते हैं, जिससे 'लूप' हमेशा के लिए चलते हैं, भले ही बंदरगाह समय के साथ उपलब्ध हो जाते हैं। –