जब दूसरा छोर बंद हो जाता है तो सोसाइटी को समाप्त होने से रोकें


12

मैं एक यूनिक्स सॉकेट में एप्लिकेशन इनपुट और आउटपुट को रीडायरेक्ट करना चाहता हूं और दूसरे सत्र से उस सॉकेट से कनेक्ट करना चाहता हूं। अब तक जो मैं कर रहा हूं वह निम्नलिखित है:

"सर्वर" पक्ष पर:

socat EXEC:"command" UNIX-LISTEN:/tmp/comm

और "ग्राहक" पक्ष पर:

socat UNIX-CONNECT:/tmp/comm -

यह बहुत अच्छा काम करता है, लेकिन जैसे ही क्लाइंट-साइड socatसमाप्त होता है, सर्वर भी समाप्त हो जाता है। लेकिन मैं चाहूंगा कि इसे चालू रखें और बाद में फिर से कनेक्ट करें ... मैं इसे कैसे पूरा करूं?

जवाबों:


12

आपको forkविकल्प का उपयोग करना चाहिए , जो एक बच्चे की प्रक्रिया में एक कनेक्शन को संभालते हैं, माता-पिता की प्रक्रिया को अधिक कनेक्शन को संभालने का प्रयास करते हैं।

पहले टर्मिनल में:

$ socat - UNIX-LISTEN:/tmp/comm,fork

दूसरे टर्मिनल में:

$ socat UNIX-CONNECT:/tmp/comm -

दूसरे टर्मिनल में Ctrl+ दबाएँ C, पहले टर्मिनल पर जाएँ और देखें कि आपका सर्वर अभी भी चल रहा है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.