मैं एक प्रोग्राम लिखना चाहता हूं और इसे दो मशीनों पर चलाऊंगा, और ईथरनेट फ्रेम में एक मशीन से दूसरे में कुछ डेटा भेजूंगा।क्या मैं सी ++ में ईथरनेट आधारित नेटवर्क प्रोग्राम लिख सकता हूं?
आम तौर पर एप्लिकेशन डेटा ओएसआई मॉडल की परत 7 पर है, क्या कर्नेल प्रतिबंध या एपीआई प्रतिबंध जैसी कोई चीज है, जो मुझे एक प्रोग्राम लिखने से रोकती है जिसमें मैं एक गंतव्य मैक पता निर्दिष्ट कर सकता हूं और कुछ डेटा भेज सकता हूं वह मैक ईथरनेट पेलोड के रूप में? फिर आने वाले फ्रेम सुनने के लिए एक प्रोग्राम लिखें और फ्रेम से डेटा के पेलोड को निकालने, निर्दिष्ट स्रोत मैक पते से फ्रेम को पकड़ें?
(इसलिए मैं आईपी या टीसीपी/यूडीपी हेडर जैसे किसी अन्य ओवरहेड नहीं चाहता, मैं परत 2 से अधिक नहीं जाना चाहता)।
क्या यह सी ++ में किया जा सकता है, या आईपी परत पर सभी संचार होना चाहिए, और क्या यह उबंटू पर किया जा सकता है? संकेत देने या उदाहरण प्रदान करने के लिए अतिरिक्त प्यार! : डी
मेरी समस्या स्पष्ट रूप से मैं सी ++ में नेटवर्क प्रोग्रामिंग के लिए नया हूं और जहां तक मुझे पता है, अगर मैं किसी नेटवर्क पर संवाद करना चाहता हूं तो मुझे socket()
कॉल या इसी तरह का उपयोग करना होगा, जो आईपी परत पर काम करता है , तो क्या मैं ओएसआई लेयर 2 पर काम करने के लिए एक सी ++ प्रोग्राम लिख सकता हूं, क्या इसके लिए एपीआई हैं, क्या लिनक्स कर्नेल भी इसे अनुमति देता है?
सी ++ एक प्रोग्रामिंग भाषा है, आईपी परत एक सार अवधारणा है। आपके टेक्स्ट में दूसरे को बदलना मेरे बाहर है। – littleadv
@littleadv: क्यों? वह बिल्कुल नहीं जानता कि क्या पूछना है ("मैं सी ++ में कच्चे सॉकेट का उपयोग कैसे करूं?"), लेकिन आप पूरी तरह से अर्थ समझ सकते हैं। – cha0site
सैद्धांतिक रूप से C++ के बाद 2 में जाने में कोई समस्या नहीं होनी चाहिए, लेकिन ओएस समर्थन आपको सीमित कर सकता है। यद्यपि यूडीपी बहुत कम ओवरहेड है, बस इसका इस्तेमाल करें। –