2010-06-26 16 views
5

मैं अपने प्रोग्रामिंग प्लेटफॉर्म के रूप में सी भाषा और लिनक्स का उपयोग कर रहा हूं।उसी स्थानीय मशीन में दो अनुप्रयोगों के बीच संचार

मैं एक उपयोगकर्ता-अंतरिक्ष अनुप्रयोग विकसित कर रहा हूं जो पृष्ठभूमि में चलता है, जैसे कि डिमन। और मेरी समस्या यह है कि, मैं इस डेमॉन के साथ संवाद करने के लिए एक और उपयोगकर्ता-स्थान एप्लिकेशन चाहता हूं।

मुझे पता है कि मुझे इंटरप्रोसेस संचार विधि का उपयोग करना है, लेकिन मुझे नहीं पता कि सही कार्यान्वयन क्या है।

लेकिन मेरे संचार कार्यान्वयन में आईपीसी का उपयोग करना मेरा दूसरा विकल्प है। वास्तव में मैं सिर्फ एक और आवेदन का उपयोग करके अपने डिमन की विशेषता को बदलना चाहता हूं। कृपया नीचे एक सेनेरियो देखें:

  1. मेरा डिमन पृष्ठभूमि में चलता है।
  2. फिर कुछ एप्लिकेशन नींबू के गुणों को नियंत्रित करेंगे, जैसे नींद की देरी का समय।

मेरा पहला विकल्प गुणों के मूल्यों के साथ फ़ाइल तक पहुंच कर है। ताकि मेरा deamon उस मूल्यों को मतदान करेगा। जबकि अन्य एप्लिकेशन उस मान को बदल देगा।

मुझे यकीन नहीं है कि मेरे विकल्पों की दक्षता सुनिश्चित नहीं है। कृपया सलाह दें।

धन्यवाद।

उत्तर

4

कॉन्फ़िगरेशन फ़ाइल को अपडेट करना और पुन: पढ़ने के कारण सिग्नल भेजना एक मानक अभ्यास, सस्ता और आसान है।

3

आप D-Bus देख रहे हैं। प्रारंभिक मानों को किसी फ़ाइल में संग्रहीत करें, फिर इसे बदलने के अनुरोधों के लिए डी-बस पर सुनें।

+0

gconf/dconf/xfconf सभी जो कुछ भी चाहते हैं (और दूसरा दो डीबीस आधारित हैं) – Spudd86

2

यूनिक्स डोमेन सॉकेट एक साधारण आईपीसी विधि हैं।

+0

दरअसल, मैं एक साझा लाइब्रेरी बनाने की योजना बना रहा हूं ताकि कोई भी एप्लिकेशन इन एपीआई का उपयोग डिमन के साथ संवाद करने के लिए कर सके। क्या इस तरह के कार्यान्वयन में डोमेन सॉकेट का उपयोग करना संभव है? – domlao

2

यदि मैं आप थे, तो मैं पूरी तरह से आईपीसी से आगे निकलता हूं और इसके बजाय डिमन परिवर्तनों के लिए कॉन्फ़िगरेशन फ़ाइल की निगरानी करता है। आईपीसी केवल तभी जरूरी है जब आप प्रति सेकेंड हजारों संदेश भेज रहे हों और ओवरहेड असहिष्णु हो जाए।

inotify फ़ाइल निगरानी के लिए एक विकल्प है।

+0

धन्यवाद, मैं सिर्फ इनोटिफ़ाई का उपयोग करने के बजाय सिग्नल भेजूंगा। – domlao

+0

मैं इस मामले में एक कॉन्फ़िगरेशन फ़ाइल का उपयोग करने के लिए सहमत हूं लेकिन मैं पूरी तरह से असहमत हूं कि आईपीसी का उपयोग प्रति सेकंड हजारों संदेशों जैसे कुछ के लिए किया जाना चाहिए। – BobbyShaftoe

1

मैं डिमन को पाइप/फीफो पर सुनूंगा यदि यह इतना आसान है कि आपको केवल किसी अन्य प्रोग्राम से खिलाए गए बाइट्स को पढ़ने की आवश्यकता है। अन्यथा एक स्थानीय डोमेन सॉकेट एक साधारण प्रोटोकॉल चलाने के लिए अच्छा है।

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