वेब (उदाहरण के लिए, Google) के साथ एक इंटरफ़ेस C ++ कैसे करता है?


12

Google को C ++ की हास्यास्पद राशि के लिए अच्छी तरह से जाना जाता है जिसे उन्होंने वर्षों में कोडित किया है। अगर मैं गलत हूं तो मुझे सुधारें, लेकिन Google के मुख्य खोज इंजन का एक बड़ा हिस्सा C ++ में लिखा गया है, है ना? कोई C ++ में लिखे गए प्रोग्राम को कैसे लेता है और एक वेबसाइट के साथ इंटरफ़ेस करता है?

नोट: मैं यह नहीं देख रहा हूं कि विशेष रूप से Google ऐसा कैसे करता है, बस यह सामान्य रूप से कैसे किया जा सकता है।


ठीक है, Google ने अपने अधिकांश एप्लिकेशन को अजगर में बनाया है और अब जावा भी बहुत उपयोग में देखा जाता है। Google भाषाओं के उपयोग पर प्रतिबंध नहीं लगाएगा। वेब इंटरफेसिंग के लिए, सॉकेट का उपयोग किया जाता है। C ++ का कुछ नहीं, लेकिन C एपिस का। C ++ का अपना नहीं है !!
user1708086

जवाबों:


16

कोई भी वेब सॉफ्टवेयर केवल सॉकेट्स के माध्यम से संदेश भेजेगा और प्राप्त करेगा, बस। आप ऐसा करने के लिए किसी भी भाषा का उपयोग कर सकते हैं, यह भाषाओं के लिए विशिष्ट नहीं है।

हालाँकि, आप इस तरह के काम के लिए पहिया को बेहतर नहीं बना सकते हैं, इसलिए वेब एप्लिकेशन करने के लिए उपयोग की जाने वाली अधिकांश भाषाओं में उनके ढांचे का सेट है जो आपके लिए बुनियादी संचार करता है, जिससे आप अपनी परियोजना की विशिष्टताओं पर ध्यान केंद्रित कर सकते हैं। रूबी में ROR, Python में Django और अन्य, Java as ... आदि हैं।

ऐतिहासिक रूप से C ++ में हाल ही तक कोई समान रूपरेखा नहीं थी:

  • CPPCMS जैसी किसी चीज़ का उपयोग करने का एक आधुनिक-सी ++ तरीका है ;
  • वेब देव के लिए एक मानक पुस्तकालय स्थापित करने का भी प्रयास है। सी ++ में, उनमें से एक सीपीपी-नेटलिब है ;
  • हाल ही में कैसब्लांका नामक Microsoft से C ++ 11 के लिए एक क्रॉस-प्लेटफ़ॉर्म REST API लाइब्रेरी का लोकार्पण हुआ है, जो मदद भी करता है;

अब, "C ++ की हास्यास्पद राशि" जिसे Google द्वारा बनाया गया है आवश्यक है, क्योंकि Google को हल करने के लिए आपको बहुत ही उच्च-प्रदर्शन मॉड्यूल की आवश्यकता होती है। प्रदर्शन पर केंद्रित भाषा में लिखे गए किसी भी मॉड्यूल के बिना भी ऐसा करने का सौभाग्य। मैं इस विषय को बेहतर समझने के लिए CPPCMS विकि को पढ़ने की सलाह देता हूँ। ऐतिहासिक तथ्यों के लिए, अमेज़ॅन, Google, फेसबुक (हिप हॉप और हाल ही में एलेक्ज़ेंड्रस्कु साक्षात्कार) और कुछ अन्य वास्तव में बड़ी वेब सेवाओं में सी ++ में कोर हैं, स्पष्ट कम्प्यूटेशनल कारणों के लिए जो प्रोग्रामर उत्पादकता पर खोए गए समय से अधिक महत्वपूर्ण हैं।

CPPCMS और cpp-netlib ओपन सोर्स होने के नाते, आप उनका अध्ययन कर सकते हैं यदि आप जानना चाहते हैं कि C ++ का उपयोग करके वेब सेवा के रूप में एप्लिकेशन कैसे काम करें। उस ने कहा, कोई भी एप्लिकेशन जो पोर्ट को सुन सकता है और पोर्ट को डेटा भेज सकता है, वह संभावित रूप से ऐसा कर सकता है, यह सभी प्रोटोकॉल (टीसीपी / आईपी, एचटीटीपी, आदि) के बारे में है , कोड नहीं।


अभी तक चुप नहीं रह सकते, लेकिन मैंने आपका जवाब स्वीकार कर लिया है। मुझे सीपीपीसीएमएस जैसी किसी चीज़ की जानकारी नहीं थी, लेकिन यह जानना अच्छा है। धन्यवाद!
मैनीक्योर साइंस

1
मैं समझता हूं, यह दूसरों की तुलना में बहुत नया है। अन्य खराब (मेरी अपनी सलाह में) समाधान पहले से मौजूद थे लेकिन मुझे लगता है कि यह भाषा और समस्या के लिए अधिक अनुकूल है।
Klaim

1
C ++ में ऐसी रूपरेखाएँ थीं - वेब का उपयोग पूरी तरह से cgi ऐप्स या MS के ISAPI dlls या Microsoft के ATLServer के साथ किया जाता था। आजकल, हमारे पास कई सी ++ वेब फ्रेमवर्क हैं, और माइक्रोसॉफ्ट कैसाब्लांका पर काम कर रहा है, जो आपको क्लाउड सेवाओं के रूप में सी ++ देता है।
gbjbaanb

यह उल्लेख किया जाना चाहिए कि अधिकांश वेब एप्लिकेशन फ्रंट एंड सर्वर के पीछे रहते हैं और इसके साथ या तो सीजीआई बात करते हैं, जो डेटा को पर्यावरण, स्टड और स्टडआउट या एफसीजीआई में पास करता है, जो सॉकेट और HTTP की तुलना में कुछ सरल प्रोटोकॉल का उपयोग करता है।
Jan Hudec

3

किसी अन्य भाषा की तरह…।

एक टीसी सॉकेट खोलें, http संदेश भेजें और प्राप्त करें। उन्हें पार्स करें और सामग्री के आधार पर सामान करें।

एक c ++ फ्रेमवर्क पर एक उदाहरण के लिए Qt को देखें जो कुछ बुनियादी http कार्यक्षमता का समर्थन करता है।

C ++ के लिए समर्पित वेब फ्रेमवर्क भी हैं। कई नहीं और न ही व्यापक रूप से इस्तेमाल किया, AFAIK। शायद इसलिए कि अगर आप सी ++ के माध्यम से वेब करते हैं, तो आप वैसे भी बहुत कुछ कर रहे हैं और हर चीज पर पूर्ण नियंत्रण चाहते हैं।


मुझे शायद अपने लिए यह पता लगाने में सक्षम होना चाहिए था। एकमात्र वेब प्रोग्रामिंग जो मैंने किया है, वह Django के माध्यम से किया गया है, इसलिए यह सब दूर था।
मैनीक्योर साइंस

मुझे लगा कि। Django अच्छा है, लेकिन अगर आप इसे नीचे खोदते हैं, तो आप देखेंगे कि मुख्य भाग बहुत मुश्किल नहीं है। अब, C ++ में एक Django के बराबर लिखना, एक मजेदार चुनौती है। ;)
मैके

@ मैके अच्छी तरह से मुझे लगता है कि सीपीपीसीएमएस एक मजेदार चुनौती है, हालांकि यह निश्चित नहीं है। C ++ में मानक नेटवर्किंग की कमी मदद नहीं करती है लेकिन इसके साथ काम करने के लिए बहुत सारे समाधान हैं। C ++ के साथ मुख्य समस्या यह है कि यह तथ्य अधिक है कि निष्पादन योग्य को फिर से शुरू किए बिना अपडेट करना कठिन है, और कभी-कभी संकलन करने के लिए भी इतना लंबा है। CPPCMS हालांकि इसके साथ मदद करता है।
Klaim

Btw, एक आधुनिक, अच्छे async नेटवर्किंग c ++ लाइब्रेरी के लिए, मैं ASIO लाइब्रेरी की सलाह देता हूं, जो उत्कृष्ट बूस्ट पैकेज के एक भाग के रूप में उपलब्ध है। मैंने इसमें कुछ सरल टीसीपी / यूडीपी क्लाइंट / सर्वर ऐप लिख दिए हैं, और यह काफी सुंदर है।
Macke

2

क्लाइंट के नजरिए से, यदि आपके पास C / C ++ प्रोग्राम है और आप इसका उपयोग इंटरनेट पर बात करने के लिए करना चाहते हैं तो आप libcurl का उपयोग करेंगे। यह बहुत मानक (और व्यापक) पुस्तकालय है जो डेटा भेजने और प्राप्त करने के लिए http urls से जुड़ता है। कई अन्य पुस्तकालय हैं - Microsoft के पास कुछ है, कई खुले स्रोत हैं।

अब यह http (या SMTP, या FTP, या गोफर, या .. libcurl पर सामान्य पुराने URL के लिए बहुत व्यापक है!) यदि आप SOAP पर वेब सेवाओं का उपभोग करने का प्रयास कर रहे हैं, तो आप कई अन्य पुस्तकालयों में से एक का उपयोग कर सकते हैं जैसे कि! gsoap।

सर्वर साइड के लिए, आपको एक वेबसर्वर या फ्रेमवर्क की आवश्यकता होती है जो आपके C ++ कोड को उजागर करता है। फिर से ऐसा करने के कई तरीके हैं - शुरुआती वेब प्रोग्राम सभी C / C ++ थे, जिन्हें CGI प्रोग्राम के रूप में लिखा गया था, जहाँ वेबसर्वर ने IPC के एक फॉर्म का उपयोग करके आपके ऐप को कॉल किया था। तब से, हमारे पास Wt, Qt, cppCMS, ffead, और Microsoft (ISAPI, ATLServer, और अब कैसाब्लांका) से सभी हैं।

मुझे लगता है कि इसका कारण यह नहीं है कि वास्तव में सी + + अपने वेब प्रोगामिंग के लिए सी ++ का उपयोग करता है, क्योंकि अन्य भाषाएं इन पुस्तकालयों के साथ पूर्व-पैक हैं। C ++ (हमेशा की तरह) आपको उपयोग करने के लिए लाइब्रेरी ढूंढनी होगी, जबकि PHP सिर्फ वेब पर जाने के लिए तैयार है।


-4

क्लाइंट-सर्वर आर्किटेक्चर ऐसा होने देता है।

C ++ का उपयोग सर्वर को विकसित करने के लिए किया जा सकता है।

क्लाइंट साइड पर, सर्वर के साथ संचार करने के लिए वेब तकनीकों का उपयोग किया जा सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.