2009-06-30 11 views
5

उम्मीद कर रहा है कि किसी को भी एक अच्छा के बारे में पता है: मैं क्लास पदानुक्रम और जावा एपीआई जैसा विधियों के साथ एक (मुफ्त में उपयोग) सी ++ लाइब्रेरी की तलाश में हूं, कम से कम I/ओ & नेटवर्किंग भाग अगर यह विशेष रूप से HTTP हैंडलिंग।जावा + जैसी एपीआई

मैं मुख्य रूप से सी & जावा के साथ काम करता हूं, लेकिन इस विशेष परियोजना सी ++ की सिफारिश की जाती है, इसलिए मैंने एक सीधी सीखने की वक्र का सामना किए बिना सी ++ पुस्तकालयों का एक अच्छा सेट अपनाने का विचार किया।

किसी भी सिफारिश के लिए अग्रिम धन्यवाद।

उत्तर

5

Qt आईएमएचओ बहुत जावा जैसा है। अर्थात। वे एसटीएल वाले पर Java-Style Iterators पसंद करते हैं। क्यूटी नेटवर्किंग (examples) और (जावास्क्रिप्ट के माध्यम से पटकथा की तरह) ज्यादा अन्य सामान

+0

क्यूटी। मैं परीक्षा में हूं, लेकिन जीपीएल जा रहा है सवाल से बाहर है, यानी, इसे प्रबंधन द्वारा खारिज कर दिया जाएगा। –

+2

इसका एलजीपीएल संस्करण 4.5 –

+0

ट्रोल तकनीक लिंक मर चुका है – johnchen902

5

क्या आपने Boost पुस्तकालयों को देखा है?

  • बूस्ट। IOStreams स्ट्रीम, स्ट्रीम बफर और आई/ओ फ़िल्टर को परिभाषित करने के लिए एक ढांचा प्रदान करता है।
  • Asio - सॉकेट, टाइमर, होस्टनाम रिज़ॉल्यूशन और सॉकेट आईओस्ट्रीम सहित पोर्टेबल नेटवर्किंग।
  • कई others ....

बूस्ट पुस्तकालयों समान क्षमताओं जावा एपीआई की तुलना में प्रदान करते हैं, लेकिन वे बहुत ज्यादा 'देखो और महसूस' - उचित रूप से - एक सी ++ पुस्तकालय की तरह।

+0

धन्यवाद। मैंने बूस्ट: एएसओ की जांच की, लेकिन यह टीसीपी तक संभालती है, जिसका अर्थ है कि अगर मुझे सत्र/कुकीज़ और सामान के साथ HTTP को संभालने की ज़रूरत है तो मुझे इसे स्वयं लागू करना होगा। मुझे आश्चर्य है कि क्या कार्यों में HTTP के लिए विशेष रूप से कोई नया प्रस्ताव है ... –

+0

सीपीपी-नेटलिब प्रोजेक्ट - http://sourceforge.net/projects/cpp-netlib - बूस्ट में शामिल करने के लिए HTTP क्लाइंट समर्थन पर काम कर रहा है। –

0

एक सी ++ लाइब्रेरी जो जावा की तरह दिखती है वह एक खराब लाइब्रेरी, आईएमएचओ होगी। दोनों भाषाएं इतनी अलग हैं कि एक के लिए अच्छा डिजाइन क्या है, लगभग अनिवार्य रूप से दूसरे के लिए खराब डिजाइन होगा।

+3

ए सी ++ लाइब्रेरी जिसमें जावा लाइब्रेरी के समान इंटरफ़ेस हैं, एक खराब डिज़ाइन इमो नहीं होगा। .NET कुछ बहुत ही अलग भाषाओं के लिए समान इंटरफेस प्रदान करने में सक्षम था और यह सी ++ पुस्तकालय बहुत अच्छे हैं। –

2

शामिल वहाँ भी, POCO की तरह कुछ है, जो बूस्ट की तरह कुछ का उपयोग कर की तुलना में थोड़ा आसान है का उपयोग करते हुए, जबकि अभी भी क्रॉस प्लेटफॉर्म होने का विकल्प है।

जबकि जावा में HTTP का उपयोग करने का एकमात्र समय बहुत समय पहले था, पीओसीओ लाइब्रेरी के लिए इंटरफ़ेस उपयोग करने के लिए काफी सरल दिखता है।

Poco::Net::FTPStreamFactory::registerFactory(); 
std::ofstream localFile(inputFile, std::ios_base::out | std::ios_base::binary); 
Poco::URI uri(inputURL); 
std::auto_ptr<std::istream> ptrFtpStream(Poco::Net::URIStreamOpener::defaultOpener().open(uri)); 
Poco::StreamCopier::copyStream(*ptrFtpStream.get(), localFile); 
+0

मैं इसे पहले देख रहा था, लेकिन मैं यहां लोगों से अधिक प्रतिक्रिया प्राप्त करना चाहता हूं। धन्यवाद। –

+0

@ राफेल, पोको एक महान पुस्तकालय है जो एसएलएल पर बनाता है, सभी सी ++ मुहावरे का पालन करता है, और फिर भी जावा जैसा दिखता है। तो मुझे लगता है कि यह आपके लिए एक अच्छा विकल्प है। – StackedCrooked

0

आप Mindroid पर एक नज़र ले जा सकते हैं, जो मुख्य रूप से प्रोग्रामिंग embeddded को उन्मुख है:

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

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