2009-11-12 4 views
5

विंसॉक में एसिंक्रोनस एड्रेस रिज़ॉल्यूशन में देखकर ऐसा लगता है कि केवल दो विकल्प अलग-अलग धागे पर gethostbyname अवरुद्ध करने के लिए हैं, या WSAAsyncGetHostByName का उपयोग करें। उत्तरार्द्ध को ओवरलैप्ड ऑपरेशंस और समापन बंदरगाहों/दिनचर्या के बजाय विंडो संदेशों के साथ काम करने के किसी कारण के लिए डिज़ाइन किया गया है।विंसॉक में असीमित पता संकल्प?

क्या gethostbyname का कोई संस्करण है जो ओवरलैप्ड ऑपरेशंस के साथ असीमित तरीके से विंसॉक एपीआई के समान तरीके से काम करता है?

+1

"कुछ कारण" इस तरह डिज़ाइन किया गया था कि विंसॉक Win16 दुनिया में बनाया गया था, जहां कोई थ्रेड या कंसोल-मोड प्रोग्राम नहीं थे। (वहां डॉस प्रोग्राम थे, लेकिन उन्हें ट्रिकरी को छोड़कर विंसॉक तक पहुंच नहीं थी।) सभी विंडोज प्रोग्रामों में एक जीयूआई था , या कम से कम एक संदेश लूप, जिसके द्वारा ओएस ने जो कुछ हुआ है, उसके कार्यक्रम को बताया। समाप्त नाम लुकअप टी की अधिसूचना इस तंत्र के माध्यम से, उस दुनिया में समझ में आता है। –

उत्तर

1

क्षमा करें, gethostbyname() का कोई ओवरलैप्ड संस्करण नहीं है।

3

दुर्भाग्यवश वर्तमान में मौजूद नहीं है, हालांकि GetAddrInfoEx() में सभी 'सामान्य' मार्गों (आईओसीपी समेत) के माध्यम से एसिंक ऑपरेशन के लिए सभी सही चीजों के लिए प्लेसहोल्डर्स हैं, इसलिए मुझे उम्मीद है कि अंत में ... दुर्भाग्यवश, इस पर समय, दस्तावेज़ कहते हैं कि इन सभी को न्यूल पर सेट किया जाना चाहिए और उन्हें 'आरक्षित' के रूप में चिह्नित किया जाना चाहिए। :(

मैं सिर्फ एक लिखने वाला हूं (थोड़ी देर के लिए रहा हूं) ... यह दुर्भाग्यपूर्ण है कि WSAAsyncGetHostByName समवर्ती नाम रिज़ॉल्यूशन की अनुमति भी नहीं देता है, इसलिए यह मेरी इच्छा के आधार के रूप में बहुत बेकार है, लेकिन , फिर से, क्योंकि यह आईपीवी 6 को संभाल नहीं पाता है जो मुझे यह बहुत बेकार बनाता है। मुझे उम्मीद है कि मैं स्क्रैच से शुरू करूंगा; संभवतः this (बियरवेयर) जैसे आधार के रूप में कुछ उपयोग कर रहा है।

+0

सावधान रहें, दूसरी लाइब्रेरी जो आप लिंक करते हैं वह GPL'd है। –

+0

अच्छी जगह वॉरेन। मुझे अभी तक इसका पालन करने के लिए अभी तक नहीं मिला था। मैंने कल रात गुगल किया था। –

संबंधित मुद्दे