2009-11-26 17 views
12

मेरे पास दो सी # अनुप्रयोग हैं और मैं चाहता हूं कि उनमें से एक दूसरे को दो पूर्णांक भेज दें (यह तेज़ नहीं होना चाहिए क्योंकि यह हर कुछ सेकंड में केवल एक बार लागू होता है)।सी # में अंतर प्रक्रिया संचार करने का सबसे आसान तरीका क्या है?

ऐसा करने का सबसे आसान तरीका क्या है? (यह सबसे सुंदर एक होने की जरूरत नहीं है।)

+0

डुप्लिकेट के पास: http://stackoverflow.com/questions/232332 और http://stackoverflow.com/questions/833376 –

उत्तर

0

मैं कहना चाहता हूँ उन्हें एक सॉकेट से बात करते हैं।

एक सॉकेट पर एक कार्यक्रम listen है और अन्य connect पहले किया है। अंकों के तारों के रूप में, एक एकल रेखा पर दो पूर्णांक भेजें।

केवल सवाल यह है कि वे पोर्ट संख्या पर सहमत होना चाहिए, और कैसे वे जानते हैं कि वे एक दूसरे से बात कर रहे है। वे पोर्ट पोर्ट नंबर पर सहमत हो सकते हैं कि उन्हें हमेशा पोर्ट 12345 (कहना) का उपयोग करना चाहिए, और दूसरे भाग के लिए गंदे-हैकी-समाधान सिर्फ उस पर भरोसा करना है जिसे आप एक अच्छा लड़का होने के साथ बात कर रहे हैं।

+0

असल में, जहां तक ​​मुझे याद है, आप निर्दिष्ट कर सकते हैं कि कौन से पते कनेक्शन स्वीकार करते हैं (या कम से कम यह पता लगाएं कि यह किस पते पर आ रहा है, और यदि यह स्थानीयहोस्ट नहीं है ... अच्छा, अजनबियों से कभी बात न करें;))। – Bobby

0

एक और तरीका नामित पाइप की नकल करना होगा। कहीं भी एक फ़ाइल घोषित करें, और इसे पढ़ने/लिखने के लिए पढ़ें।

या, यदि कार्यक्रम अनुक्रम में निष्पादित हो जाते हैं, तो आप क्लिपबोर्ड को आजमा सकते हैं ... लेकिन वह समाधान नरक के रूप में बदसूरत है और छोटी गाड़ी है (कभी-कभी .NET क्लिपबोर्ड को किसी कारण से एक्सेस नहीं कर सकता)।

+1

मैं क्लिपबोर्ड भाग से दृढ़ता से असहमत हूं। और मुझे एक नामित पाइप * अनुकरण * में कोई बिंदु नहीं दिखता है, जब आप वास्तविक नामित पाइप का उपयोग कर सकते हैं? – Groo

0

Mutex एक विकल्प हो सकता है; कृपया इसे पढ़ें: Inter-Process Data Exchange using .NET 2.0

पूर्णता के लिए, आप net.pipe और WCF का उपयोग भी कर सकते हैं।

+0

म्यूटेक्स का उपयोग सिंक्रनाइज़ेशन के लिए किया जाता है, डेटा हस्तांतरण नहीं। – Groo

+0

ने हटा दिया कि ग्रू, टा –

15

सबसे आसान और विश्वसनीय तरीका लगभग निश्चित रूप से IpcChannel (यानी इंटर प्रक्रिया संचार चैनल) है; यही वह है जो इसके लिए है। आप कोड और कॉन्फ़िगरेशन की कुछ पंक्तियों के साथ इसे प्राप्त और चला सकते हैं।

+1

बहुत आसान; आसान, आदि ... जो मैं देख रहा हूं उससे कहीं भी आसान है। – DaBlue

5

आप .NET Remoting को आजमा सकते हैं। यहां एक साधारण उदाहरण है: CodeProject .NET Remoting

यदि आप .NET 3.5 का उपयोग कर रहे हैं, तो आपको डब्ल्यूसीएफ के लिए जाना चाहिए, क्योंकि रिमोटिंग धीरे-धीरे अप्रचलित हो रही है। फिर, लगभग examples for WCF आसपास हैं।

2

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

यह मौजूदा भारतीय दंड संहिता कार्यान्वयन पर कुछ फायदे हैं और किसी भी विन्यास की आवश्यकता नहीं है।

here देखें।

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

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