2010-11-26 11 views
9

मैं क्लाइंट सॉकेट खोलने के लिए एक सरल बैश कमांड की तलाश में हूं, सॉकेट से सबकुछ पढ़ता हूं, और फिर सॉकेट बंद करता हूं। सॉकेट के लिए wget या कर्ल की तरह कुछ।बैश कमांड?

क्या ऐसा करने के लिए बैश में कोई आदेश है? क्या मुझे एक बैश स्क्रिप्ट लिखने की ज़रूरत है?

उत्तर

6

Netcat आमतौर पर ऐसा करने के लिए उपयोग किया जाने वाला टूल है, लेकिन यह /dev/tcp and /dev/udp special pathnames के साथ भी किया जा सकता है।

3

एनसी का उपयोग करें। यह तेज़ और आसान है। कि nc के लिए इंतजार करेंगे 5 सेकंड अधिकतम

echo "GET /files/a_file.mp3 HTTP/1.0" | nc -w 5 192.168.0.2 999 > /tmp/the_file.mp3

स्विच -w 5 कहता है: पोर्ट 999 पर ग्राहक 192.168.0.2 से कनेक्ट, यह एक संसाधन के लिए एक अनुरोध भेजने के लिए, और डिस्क के लिए है कि संसाधन बचाने के लिए, निम्न कार्य करें एक प्रतिक्रिया। जब एनसी डाउनलोड किया जाता है, तो सॉकेट बंद हो जाता है।

आप एक अधिक जटिल अनुरोध भेजना चाहते हैं, तो आप एडिट या कुछ अन्य पाठ संपादक का उपयोग कर सकते हैं यह लिखने के लिए, फाइल करने के लिए "reqest" इसे सहेजें, और उसके बाद बिल्ली कि nc को पाइप के माध्यम से दायर:

cat request.txt | nc -w 5 192.168.0.2 999 > /tmp/the_file.mp3

आपको इसके लिए एक स्क्रिप्ट लिखने की आवश्यकता नहीं है, क्योंकि यह एक पंक्ति कमांड है ... लेकिन यदि आप अक्सर इसका इस्तेमाल करेंगे, तो एक स्क्रिप्ट लिखना जरूरी है!

आशा है कि मैंने मदद की। :)

1

पहले से ही उल्लेख किया गया है नेटकैट (nc) सरल और शक्तिशाली है। लेकिन अगर आपको अभी तक एक और अधिक शक्तिशाली उपकरण की आवश्यकता है: socat

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