2012-02-08 9 views
14

मैं लिनक्स और खिड़कियों दोनों में सॉकेट संचार (सुनो, स्वीकार, कनेक्ट, रिक, भेज, डिस्कनेक्ट) करना चाहता हूं। मेरा प्रोजेक्ट सी में है, इसलिए जब तक कोई सी सी ++ पुस्तकालयों को सी प्रोजेक्ट में एकीकृत करने के लिए मेरे बारे में सोच नहीं सकता है, लाइब्रेरी को सी में भी होना होगा।सी में किसी भी क्रॉस प्लेटफार्म सॉकेट लाइब्रेरी (विंडोज़ और लिनक्स) के बारे में जानें?

आखिरकार, मैं पुस्तकालय को आईपीवी 6 समर्थन और गैर-अवरोधन मोड रखना चाहता हूं, हालांकि, ये चीजें आवश्यक नहीं हैं।

क्या किसी को किसी भी पुस्तकालय/क्रॉस-प्लेटफ़ॉर्म उदाहरण कोड के बारे में पता है? यहां तक ​​कि बड़े कोड स्निपेट भी मदद करेंगे। अब तक मुझे मिली कुछ सॉकेट लाइब्रेरी सी ++ में हैं।

उत्तर

9

ऑफ हाथ, मैं चार पुस्तकालयों के बारे में सोच सकते हैं:

  • GLib framework सार सॉकेट उपयोग कर सकते हैं से GLib Channels, लेकिन आप सॉकेट निर्माण के लिए प्लेटफ़ॉर्म-विशिष्ट कोड की आवश्यकता होगी।

  • libuv अन्य चीजों, सॉकेट और एसिंक आईओ के साथ नोड.जेएस और हैंडल के लिए एक प्लेटफार्म अबास्ट्रक्शन परत है।

  • Apache Portable Runtime में network routines भी शामिल है।

  • Netscape Portable Runtimesocket manipulation भी करता है।

+0

बहुत बहुत धन्यवाद, यह एक शानदार शुरुआत है।फिलहाल, मैं libuv को देख रहा हूं, क्योंकि ऐसा लगता है कि आकार/सादगी और दक्षता के बीच एक अच्छा संतुलन है। जिज्ञासा से, आपके खोज शब्द क्या थे जो उन परिणामों को उत्पन्न करते थे? या आप पहले से ही उनके बारे में जानते थे? –

+1

@ 64bit_twitchyliquid: मुझे याद नहीं है जब मैं पहली बार जीएलआईबी में आया था, लेकिन मेरे दिमाग में, यह अन्य भाषाओं की पेशकश के साथ सी के लिए एक मानक lib की जगह पर कब्जा कर लेता है; मुझे एपीआर और एनएसपीआर मिला जब मैंने प्लेटफॉर्म-एब्स्ट्रक्शन lib की तलाश की और मुझे libuv के बारे में पता है क्योंकि इसका उपयोग जंग प्रोग्रामिंग भाषा द्वारा किया जाता है; वास्तव में, इनमें से सभी libuv को छोड़कर http://www.shlomifish.org/open-source/portability-libs/ पर सूचीबद्ध हैं, * सी क्रॉस प्लेटफार्म अबास्ट्रक्शन lib * – Christoph

3

मैं अनुरूप है कि विंडोज और लिनक्स दोनों लेकिन मुझे लगता है winsock लिनक्स सॉकेट प्रोग्रामिंग करने के लिए पर्याप्त समान है एक पुस्तकालय पता नहीं है।

विशेष रूप से यह आपको 'चयन()' और अन्य कार्यों का उल्लेख करता है। मुझे लगता है कि टाइप कास्टिंग चेतावनियों से बचने के लिए आपको बहुत पतली #ifdef wrapper की आवश्यकता होगी।

See here the winsock page for select

-3

The Boost library इन विशेषताएं शामिल हैं।

+2

के लिए Google खोज का पहला परिणाम वह सी की तलाश में है लाइब्रेरी –

-2

Ptlib क्रॉस प्लेटफॉर्म सी ++ कोड प्रदान करता है जो सॉकेट के लिए अच्छी तरह से काम करता है। www.opalvoip.org

धागे के साथ अच्छी तरह से copes। मैक और बीएसडी के लिए कुछ समर्थन। सक्रिय विकास और रखरखाव के तहत। एमपीएल ईका में कोर लाइब्रेरी - पसंदीदा डेस्कटॉप ऐप जो एसआईपी & एच.323

विंडोज़ के लिए - यह एमएसवीसी के साथ संकलित करता है। लिनक्स के लिए , यह जीसीसी autoconf साथ संकलित कर आदि

ठीक है, यह C++ है, लेकिन आप उस के साथ काम कर सकते हैं ... ptlib/नमूनों के अंदर एक स्रोत है - वहाँ ptlib का उपयोग कर के कई उदाहरण हैं।

+0

वह विशेष रूप से सी पुस्तकालय के लिए पूछ रहा था। – Chase

2

plibsys लाइब्रेरी सभी अनुरोधित विशेषताएं प्रदान करता है: क्रॉस-प्लेटफ़ॉर्म और पोर्टेबल, लाइटवेट, सॉकेट आईपीवी 4 और आईपीवी 6 समर्थन के साथ-साथ कई अन्य उपयोगी चीजें जैसे मल्टीथ्रेडिंग प्रदान करता है। गैर-अवरुद्ध मोड में सॉकेट के साथ काम करता है (हालांकि आप भी अवरुद्ध करने के लिए स्विच कर सकते हैं)। परीक्षण कोड उदाहरणों के साथ काफी अच्छा दस्तावेज है।

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