मैंने माइक्रोसॉफ्ट के HTTP Server API पर बस ठोकर खाई है। परिचय कहता है:I/O प्राप्ति बंदरगाहों के साथ HttpApi का उपयोग
HTTP सर्वर एपीआई अनुप्रयोगों को माइक्रोसॉफ्ट इंटरनेट इनफॉर्मेशन सर्वर (आईआईएस) का उपयोग किए बिना HTTP पर संचार करने में सक्षम बनाता है। एप्लिकेशन विशेष यूआरएल के लिए HTTP अनुरोध प्राप्त करने के लिए पंजीकरण कर सकते हैं, HTTP अनुरोध प्राप्त कर सकते हैं, और HTTP प्रतिक्रिया भेज सकते हैं। HTTP सर्वर एपीआई में एसएसएल समर्थन शामिल है ताकि अनुप्रयोग आईआईएस के बिना सुरक्षित HTTP कनेक्शन पर डेटा का आदान-प्रदान कर सकें। यह आई/ओ पूरा करने वाले बंदरगाहों के साथ काम करने के लिए भी डिज़ाइन किया गया है।
यह ठंडा ढूंढना, मैंने एपीआई के दोनों संस्करणों के लिए कार्यों की सूची पर एक लंबा कठोर नजर डाला। अब, दस्तावेज का एकमात्र अन्य भाग जो I/O समापन बंदरगाहों का उल्लेख करता है वह HttpReceiveHttpRequest
() फ़ंक्शन है। पिछले पैरामीटर निम्नलिखित विवरण के साथ एक वैकल्पिक OVERLAPPED
संरचना होती है:
अतुल्यकालिक कॉल के लिए, एक
OVERLAPPED
संरचना को इंगित करने केpOverlapped
सेट; तुल्यकालिक कॉल के लिए, इसेNULL
पर सेट करें। निर्दिष्ट कतार में एक अनुरोध तक पहुंचने तक एक सिंक्रोनस कॉल ब्लॉक और कुछ या सभी को पुनर्प्राप्त कर लिया गया है, जबकि एक एसिंक्रोनस कॉल तुरंतERROR_IO_PENDING
देता है और कॉलिंग एप्लिकेशन तबGetOverlappedResult()
या I/O पूर्णता बंदरगाहों का उपयोग करता है यह निर्धारित करने के लिए कि ऑपरेशन कब होता है पूरा कर लिया है। सिंक्रनाइज़ेशन के लिए ओवरलैप्ड संरचनाओं का उपयोग करने के बारे में अधिक जानकारी के लिए, Synchronization and Overlapped Input and Output देखें।
कोई अन्य जानकारी नहीं है, और सभी संरचनाएं अपारदर्शी हैं और जानबूझकर कनेक्शन जानकारी छिपाती हैं। यह भी ध्यान दें कि सिंक्रनाइज़ेशन और ओवरलैप इनपुट और आउटपुट विषय HTTP API का कोई उल्लेख नहीं करता है।
क्या किसी को भी HTTP एपीआई कतार को I/O समापन पोर्ट से कनेक्ट करने के बारे में कोई जानकारी है?
क्या आपके पास यह विश्वास करने का कोई कारण है कि आप CreateIoCompletionPort के पहले पैरामीटर के रूप में कतार में हैंडल को पास नहीं करेंगे? – Gabe
नहीं। मेरे पास विश्वास करने का कोई कारण नहीं है कि यह करने के लिए सही बात है। –