मैंने कई नेटवर्किंग सिस्टम लिखे हैं और नेटवर्किंग कैसे काम करता है इसका एक अच्छा विचार है। हालांकि मैं हमेशा एक पैकेट प्राप्त करने वाला काम करता हूं जो एक विशाल स्विच स्टेटमेंट है। यह मेरे पास आने शुरू हो रहा है। मैं पैकेट प्राप्त करने के लिए एक अच्छा सुरुचिपूर्ण ऑब्जेक्ट उन्मुख तरीका चाहता हूं लेकिन हर बार जब मैं एक अच्छे समाधान के साथ आने की कोशिश करता हूं तो मैं हमेशा कम हो जाता हूं।ऑब्जेक्ट उन्मुख नेटवर्किंग
उदाहरण के लिए कहें कि आपके पास नेटवर्क सर्वर है। यह प्रतिक्रियाओं के लिए बस इंतज़ार कर रहा है। एक पैकेट आता है और सर्वर को पैकेट को सत्यापित करने की आवश्यकता होती है और फिर इसे तय करने की आवश्यकता होती है कि इसे कैसे संभाला जाए।
फिलहाल मैं हेडर में पैकेट आईडी पर स्विच करके ऐसा कर रहा हूं और फिर प्रत्येक पैकेट प्रकार को संभालने वाले फ़ंक्शन कॉल का एक बड़ा समूह है। जटिल नेटवर्किंग सिस्टम के साथ यह एक मोनोलिथिक स्विच स्टेटमेंट में परिणाम देता है और मुझे वास्तव में इसे इस तरह से संभालना पसंद नहीं है। एक तरीका मैंने माना है कि हैंडलर कक्षाओं के मानचित्र का उपयोग करना है। मैं फिर पैकेट को प्रासंगिक वर्ग में पास कर सकता हूं और आने वाले डेटा को संभाल सकता हूं। मेरे साथ समस्या यह है कि मुझे नक्शा के साथ प्रत्येक पैकेट हैंडलर को "रजिस्टर" करने का कोई तरीका चाहिए। इसका मतलब है, आम तौर पर, मुझे कक्षा की एक स्थिर प्रतिलिपि बनाने की आवश्यकता होती है और फिर कन्स्ट्रक्टर में इसे केंद्रीय पैकेट हैंडलर के साथ पंजीकृत किया जाता है। हालांकि यह काम करता है यह वास्तव में इसे संभालने के एक सुरुचिपूर्ण और विचित्र तरीके की तरह लगता है।
संपादित करें: समान रूप से यह एक अच्छा सिस्टम होना आदर्श होगा जो दोनों तरीकों से काम करता है। यानी एक वर्ग संरचना जो आसानी से उसी पैकेट प्रकार को प्राप्त करने के रूप में उन्हें प्राप्त करती है (स्पष्ट रूप से विभिन्न कार्यों के माध्यम से)।
क्या कोई मुझे इनकमिंग पैकेट को संभालने के लिए बेहतर तरीके से इंगित कर सकता है? लिंक और उपयोगी जानकारी की बहुत सराहना की जाती है!
क्षमा करें अगर मैंने अपनी समस्या का वर्णन नहीं किया है, तो मुझे इसका वर्णन करने में असमर्थता भी है क्योंकि मैंने कभी भी समाधान के साथ आने में कामयाब नहीं किया है।
आपको हैंडलर कक्षाओं की एक स्थिर प्रति की आवश्यकता नहीं है। आप निर्माता में उदाहरण पारित कर सकते हैं। हालांकि, कोई सुधार नहीं है। :( –
@ मार्टिन्हो: लेकिन इसका मतलब है कि कहीं मुझे प्रत्येक संभावित वर्ग को तुरंत चालू करना होगा। जहां, कक्षा के लिए कार्यान्वयन फ़ाइल में, मैं स्वयं का एक स्थिर संस्करण घोषित करता हूं तो निर्माता को स्वचालित रूप से कॉल किया जाता है। – Goz
क्या आपने http : //ieeexplore.ieee.org/xpl/freeabs_all.jsp? arnumber = 631153? –