c - हम्बनटोटा बंदरगाह मुद्दा




एएससी सी में बंदरगाह 80 में एक सॉकेट बाइंडिंग (6)

1024 और नीचे पोर्ट्स को विशेषाधिकारित बंदरगाह कहा जाता है, इन बंदरगाहों के लिए बाइंडिंग को उन्नत अनुमति की आवश्यकता होती है।

1024 से अधिक पोर्ट्स को एम्फ़िमल पोर्ट्स कहा जाता है। इनके लिए बाइंडिंग के लिए कोई विशेष अनुमति नहीं है।

निजी बंदरगाहों तक पहुंच प्राप्त करने का सबसे आसान तरीका रूट उपयोगकर्ता होना है।

जब मैं c बंदरगाह में 80 गर्तिका को बाइंड करने की कोशिश करता हूं, तो मुझे हमेशा त्रुटि मिलती है, कि मुझे इस पोर्ट का उपयोग करने की अनुमति नहीं है क्या यह अनुमति प्राप्त करने का एक आसान तरीका है?


आप इस ट्यूटोरियल को सी / सी ++ के साथ नेटवर्क प्रोग्रामिंग के लिए बहुत उपयोगी पाएंगे।

और, एएनएसआई सी के पास नेटवर्क तक पहुंचने का कोई रास्ता नहीं है। यह ओएस आपूर्ति की गई पुस्तकालयों (बीएसडी सॉकेट एपीआई, जो विंडोज को winsock रूप में भी पोर्ट किया गया है) जो इस क्षमता प्रदान करते हैं।


जैसे ही @ चार्ल्स बेली कहते हैं ... और मैं यह जोड़ना चाहूंगा कि यही वजह है कि 8080 पर HTTP सर्वर पते को पोर्ट एक्सटेक्शन द्वारा http: //some.url : 8080 /


परंपरागत रूप से केवल रूट रूट को 1024 के अंतर्गत बंदरगाहों में बांधा जा सकता है।


एस। लोट के उत्तर में बहुत नकारात्मक प्रतिक्रियाएं हो सकती हैं लेकिन उनका विचार बेवकूफ से दूर है: यदि मूल प्रश्न एक वास्तविक कार्यक्रम (कोई स्कूल असाइनमेंट) के लिए नहीं है, तो उसे एक HTTP सर्वर के पीछे एक आवेदन के रूप में विकसित करना अक्सर उचित विकल्प होता है। इस तरह, आप बहुत कम स्तर के विवरण को एक अच्छी और अच्छी तरह से डिबग किए गए प्रोग्राम अपाचे को छोड़ सकते हैं।

आवेदन एक सीजीआई नहीं है, यह एक अपाचे मॉड्यूल हो सकता है। अपाचे, संस्करण 2 से, अब सिर्फ एक HTTP सर्वर नहीं है अब यह नेटवर्क प्रोग्राम विकसित करने के लिए एक मंच है। अपाचे मॉड्यूल लिखना मूल प्रश्न का सही उत्तर हो सकता है ( अपाचे दस्तावेज़ीकरण देखें)


हाँ, आप पोर्ट 80 से आसानी से बाँध सकते हैं। अपाचे का उपयोग करें एक वेब अनुप्रयोग लिखें अपाचे पोर्ट 80 से जुड़ा हुआ है और आपके वेब एप्लिकेशन को चलाता है

क्या आप अगले अपाचे लिखने का प्रयास कर रहे हैं? यदि हां, तो आपको अपने ऑपरेटिंग सिस्टम में setuid API कॉल के बारे में जानने की आवश्यकता होगी।

यदि आप अपाचे का एक नया संस्करण नहीं लिख रहे हैं, तो अधिकांश लोग गैर-विशेषाधिकार वाले पोर्ट का उपयोग करते हैं 8000 लोकप्रिय है, इसलिए 8080 है





webserver