UCSPI-TCP तरीका
इसमें नेटसेट के अलावा अन्य टूलसेट भी हैं। यहाँ उनमें से कुछ का उपयोग करने का तरीका बताया गया है। वे सभी एक service
स्क्रिप्ट के अस्तित्व को मानते हैं func
जो आपकी चलती है , जो कुछ भी हो सकता है:
#! / Bin / श
पढ़ने के दौरान -r संदेश
करना
इको 1> & 2 "$ {TCPREMOTEIP}" "$ {TCPREMOTEPORT}" rx "$ {MESSAGE}"
समारोह
किया हुआ
TCPREMOTEIP
और TCPREMOTEPORT
वातावरण चर UCSPI-टीसीपी प्रोटोकॉल द्वारा परिभाषित कर रहे हैं।
स्क्रिप्ट विभिन्न टूलसेट का उपयोग करते हुए टीसीपी कनेक्शन के अनुसार एक व्यक्तिगत प्रक्रिया के रूप में शुरू की गई है। निम्न में से, उपकरण एक छोटी लिपि के भीतर उपयोग किए जाते हैं। इस तरह की स्क्रिप्ट, पारंपरिक रूप से नामित है run
, यह है कि कोई उन्हें एक डेमोंटोल्स-परिवार सेवा प्रबंधक के तहत कैसे चलाएगा। वे निश्चित रूप से सीधे लागू किए जा सकते हैं।
बर्नस्टीन ucspi-tcp
साथ डैनियल जे बर्नस्टेन की ucspi-टीसीपी, tcpserver
spawns service
स्क्रिप्ट:
#! / बिन / श-ई
निष्पादित tcpserver -v -P -R -H -l 0 0.0.0.0 7777/service
बर्नस्टीन ucspi-tcp के IPv6- सक्षम वर्धित संस्करण हैं। इरविन हॉफमैन के साथ, tcpserver
IPv4 और IPv6 दोनों को एक में संभालने का प्रयास करता है (यदि ऑपरेटिंग सिस्टम इसका समर्थन करता है, तो कुछ नहीं करता है) और service
स्क्रिप्ट को स्पॉन्स करता है :
#! / बिन / श-ई
निष्पादित tcpserver -v -P -R -H -l 0 :: 0 7777 ./ सेवा
बरकोट एस 6-नेटवर्किंग, एस 6, और निष्पादित करें
लॉरेंट बर्कोट के s6- नेटवर्किंग के साथ, s6-tcpserver4
और s6-tcpserver6
IPv4 और IPv6 को अलग से संभालें, और service
स्क्रिप्ट को देखें:
#! / आदेश / execlineb
s6-tcpserver4 -v 0.0.0.0 7777
।/सर्विस
#! / आदेश / execlineb
s6-tcpserver6 -v :: 0 7777
।/सर्विस
पहले s6-tcpserver-access
और जैसे s6-applyuidgid
श्रृंखला में उपकरणों को इंटरपोज़ करके कोई अधिक जटिल सर्वर का निर्माण कर सकता है ./service
।
नोश UCSPI उपकरण
नोश टूलसेट के साथ, tcp-socket-listen
टीसीपी सॉकेट पर सुनता है, फिर से IPv4 और IPv6 को संभालता है यदि ऑपरेटिंग सिस्टम ऐसा करने का समर्थन करता है, और चेन tcp-socket-accept
जिसके बदले में service
स्क्रिप्ट लिखती है :
#! / Bin / nosh
tcp-socket-सुनिए --combine4and6 :: 7777
tcp-socket-accept --verbose --localname 0
।/सर्विस
या एक OpenBSD जैसे ऑपरेटिंग सिस्टम पर दो अलग-अलग प्रक्रियाएं चलाता है:
#! / Bin / nosh
tcp-socket-सुनिए 0.0.0.0 7777
tcp-socket-accept --verbose --localname 0
।/सर्विस
#! / Bin / nosh
tcp-socket-सुनिए :: 7777
tcp-socket-accept --verbose --localname ::
।/सर्विस
एक और अधिक जटिल सर्वर का निर्माण कर सकते हैं जैसे कि उपकरण को ucspi-socket-rules-check
और setuidgid
श्रृंखला में गूंथ कर।
#! / Bin / nosh
tcp-socket-सुनिए --combine4and6 :: 7777
setuidgid unprivileged-user
tcp-socket-accept --verbose --localname 0
ucspi-socket-rules-check -verbose
।/सर्विस
पप ipsvd
Gerrit पेप के ipsvd के साथ, tcpsvd
spawns service
स्क्रिप्ट:
#! / बिन / श-ई
निष्पादित tcpsvd -v 0.0.0.0 7777 ./ सेवा
UCSPI-यूडीपी
सामान्य service
स्क्रिप्ट तब संभाल सकती है जब मानक इनपुट एक धारा सॉकेट है। लेकिन आपने टीसीपी को स्पष्ट रूप से निर्दिष्ट नहीं किया है।
यद्यपि उपरोक्त कुछ टूलकिट का उपयोग यूडीपी सर्वरों को उसी तरह से बनाने के लिए किया जा सकता है जैसे कि टीसीपी सर्वर (एनओएस udp-socket-listen
में सीएफ ) के निर्माण के लिए उनका उपयोग कैसे किया जा सकता है , यह शेल स्क्रिप्ट के साथ वास्तविक सेवा कार्यक्रम बनाने के लिए मुश्किल है, क्योंकि शेल के बिल्डिंस नहीं करते हैं। जरूरी है कि मानक इनपुट एक डेटाग्राम सॉकेट होने पर अच्छी तरह से सामना करें ।
आगे की पढाई
- मसविदा बनाना:
- उपकरण सेट:
- डैनियल जे। बर्नस्टीन। ucspi-tcp । cr.yp.to.
- s6- नेटवर्किंग । लॉरेंट बरकोट। skarnet.org।
- s6 । लॉरेंट बरकोट। skarnet.org।
- जोनाथन डी बॉयने पोलार्ड (2016)। नोश । सॉफ्टवेयर्स।
- ipsvd । जेरिट पपी। smarden.org।
- संदर्भ मैनुअल: