2010-02-06 15 views
5

मैं सोच रहा था कि नेटवर्किंग करने के लिए कोई एपीआई था जो विंडोज, मैक और लिनक्स पर काम करेगी। मैं एक कार्ड गेम बनाना चाहता हूं कि 2 लोग एक टीसीपी कनेक्शन के माध्यम से खेल सकते हैं।क्रॉस प्लेटफार्म नेटवर्किंग एपीआई

+0

आप एसडीएल_नेट का भी उपयोग कर सकते हैं! – luddbro

उत्तर

7

इस के लिए कुछ विकल्प हैं, कुछ दूसरों की तुलना में आसान उपयोग करने के लिए:

  • अप्रैल (अपाचे पोर्टेबल रनटाइम) - बहुत लोकप्रिय। उपयोग करने के लिए काफी आसान है। नेटवर्क प्रोग्रामिंग (थ्रेड, म्यूटेक्स इत्यादि) के लिए बहुत सी अतिरिक्त सुविधाएं शामिल हैं

  • एसीई - एम्बेडेड स्पेस के बीच लोकप्रिय। निजी तौर पर, मैंने इसे काफी जटिल एपीआई पाया, और उपयोग करने के लिए बहुत सरल नहीं है।

  • बूस्ट - यदि आपके पास सी ++ (टेम्पलेट्स, मेटाप्रोग्रामिंग इत्यादि) के साथ परिष्कार का सभ्य स्तर है, तो बूस्ट पुस्तकालय आमतौर पर बहुत अच्छे होते हैं। मुझे यकीन नहीं है कि बूस्ट एसिंक्रोनस नेटवर्किंग लाइब्रेरी असली दुनिया में कितनी लोकप्रिय हैं।

  • क्यूटी - यूआई टूलकिट के रूप में लोकप्रिय, लेकिन थ्रेडिंग, इवेंट मैनेजमेंट, नेटवर्किंग लाइब्रेरीज़ का एक बड़ा सेट है। आईएमओ, यह उपयोग करने के लिए सबसे आसान है।

यह बर्कले सॉकेट लाइब्रेरी का उपयोग कर से दूर रहने के लिए महत्वपूर्ण है के रूप में ऑपरेटिंग सिस्टम के बीच कार्यान्वयन बेतहाशा भिन्न है, और आप समय का एक उचित सा खो देंगे उन्हें OSs भर में अपने सॉफ्टवेयर आप बंदरगाह ट्यूनिंग के लिए।

मेरी निजी वरीयता: एपीआर।

2

बर्कले सॉकेट एपीआई के सबसे हर जगह काम करता है।

0

मुझे लगता है कि Apache Portable Runtime आपको लगता है कि आप जो खोज रहे हैं उसकी सहायता कर सकते हैं। अपाचे HTTPD ने इस लाइब्रेरी को आंतरिक रूप से अपने प्लेटफ़ॉर्म-विशिष्ट कोड को सारणीबद्ध करने के लिए उपयोग किया ताकि सर्वर कोड तर्क पर केंद्रित हो और एपीआर में विधियों को कॉल करे और ये अंतर्निहित ऑपरेटिंग सिस्टम फ़ंक्शंस में अनुवाद करें।

बेशक

, उसमें और भी उपकरण हो सकता है की तुलना में आप सख्ती से की आवश्यकता है ...

+0

क्या आपने एपीआर देखा है? यह विशाल और जटिल है। –

+1

विशाल पर - सच है लेकिन फिर ओएस एपीआई से अमूर्तता प्रदान करने की आवश्यकता है - तो जावा, वास्तव में, या नेट है। जटिल पर - विकल्प नहीं। जैसा कि एक और जवाब में बताया गया है, एपीआर कुछ उत्कृष्ट थ्रेडिंग एपिस प्रदान करता है क्योंकि httpd ने इस स्थान का व्यापक रूप से परीक्षण किया है। –

1

एनआरएल नेटवर्किंग तरीकों कि प्लेटफार्मों की एक विशाल विविधता का समर्थन करता है की एक वास्तव में महान पुस्तकालय है। उनके वास्तविक सूचियों से उनकी मेलिंग सूचियों पर भी उत्कृष्ट समर्थन है।

Protolib

+0

+1 मुझसे, यह वास्तव में अच्छा लगता है! –

2

आप उपयोग कर सकते हैं ACE या Boost.Asio:

ऐस के बारे में:

वृद्धि पोर्टेबिलिटी - ऐस घटकों यह आसान एक ओएस प्लेटफार्म और जल्दी से बंदरगाह पर समवर्ती नेटवर्क अनुप्रयोगों लिखने के लिए बनाने के उन्हें कई अन्य ओएस प्लेटफॉर्म पर। इसके अलावा, क्योंकि एसीई ओपन सोर्स, फ्री सॉफ़्टवेयर है, इसलिए आपको किसी विशेष ऑपरेटिंग सिस्टम प्लेटफ़ॉर्म या कंपाइलर कॉन्फ़िगरेशन में लॉक होने की चिंता करने की आवश्यकता नहीं है।

बढ़ावा बारे में:

Boost.Asio एक पार मंच सी ++ नेटवर्क और निम्न स्तर के आई/ओ प्रोग्रामिंग कि एक सुसंगत अतुल्यकालिक मॉडल एक आधुनिक सी ++ दृष्टिकोण का उपयोग कर के साथ डेवलपर्स प्रदान करता है के लिए पुस्तकालय है।

0

Synapse अच्छी मल्टीप्लाफ्फ़्ट नेटवर्क लाइब्रेरी है। ओपन सोर्स और उपयोग करने में बहुत आसान है।

http://www.ararat.cz/synapse/doku.php/download

0

एसडीएल नेट सॉकेट के शीर्ष पर एक बहुत ही सरल अमूर्त परत है, जिसका उपयोग करना बहुत आसान है। http://www.libsdl.org/projects/SDL_net देखें।

1

इस साधारण एप्लिकेशन के लिए आप मानक "बर्कले सॉकेट" फ़ंक्शंस का उपयोग कर सकते हैं जो ज्यादातर पोर्टेबल हैं। आप Boost's abstractions का भी उपयोग कर सकते हैं।

यदि आपको एसएसएल/टीएलएस जैसे सुरक्षा कार्यों की आवश्यकता है (जिसे आपको एक साधारण गेम के लिए जरूरी नहीं है), ओपनएसएसएल, जीएनयू टीएलएस, मोज़िला एनएसएस जैसे खुले स्रोत पुस्तकालय हैं।

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