मैं अपने इनपुट को तुरंत भेजने के लिए नेटकैट कैसे मजबूर कर सकता हूं, न कि सिर्फ नईलाइन पर?


35

मैं अपने इनपुट को तुरंत भेजने के लिए नेटकैट कैसे मजबूर कर सकता हूं, न कि सिर्फ नईलाइन पर? मैं मैन्युअल रूप से एक HTTP पार्सर का परीक्षण करना चाहता हूं और यह जांचना चाहता हूं कि जब हेडर लाइनें कई पैकेटों में फैली होती हैं तो यह कैसे व्यवहार करती है।


जवाबों:


42

, "EOF" कुंजी का उपयोग करें CtrlD। जब एक पंक्ति के बीच में दबाया जाता है, तो यह उस बिंदु पर इनपुट करने वाली सभी चीजों को शुद्ध करने के लिए देगा।

बफ़रिंग वास्तव में ट्टी लेयर द्वारा किया जाता है और इसे बिल्कुल भी नियंत्रित नहीं किया जाता है ncstty -icanon && nc ...यह बफरिंग को निष्क्रिय कर देगा और ncडेटा को देखने की अनुमति देगा क्योंकि यह टर्मिनल में दर्ज किया गया है, जिस बिंदु पर इसे तुरंत भेजा जाएगा। (ध्यान दें कि कमांड sttyऔर ncकमांड को एक साथ चलाया जाना चाहिए, अन्यथा शेल अपने संकेत को प्रदर्शित करते समय संभवतः इसे फिर से चालू कर देगा।)


+1, लेकिन क्या नेटकैट को खोलने के लिए कोई विकल्प नहीं है कि यह कुछ भी बफर नहीं करता है?
lpapp

5
@FinalContest: बफरिंग ट्टी लेयर द्वारा की जाती है। stty -icanon && nc ...या stty raw && nc ...इसे निष्क्रिय कर देगा। [ध्यान दें कि इसे एक साथ चलाया जाना चाहिए, अन्यथा शीघ्र प्रदर्शित होने पर शेल स्वयं इसे फिर से चालू कर देगा।]
विशाल

@ शुद्धता: भयानक, पूर्व काम ठीक है, लेकिन बाद में अटक जाता है ... ctrl-c सत्र को छोड़ने के लिए अब और काम नहीं करता है, और मैं इसे पर काम करने के लिए ctrl-z प्राप्त नहीं कर सकता। क्या यह अपेक्षित है? इसके अलावा, कृपया अपने उत्तर को अपडेट करें ताकि हम टिप्पणियों को साफ कर सकें।
lpapp

2
@FinalContest: हाँ, rawtty विकल्पों की एक पूरी गुच्छा को बदल देता है, उनमें से एक को tty स्तर पर विशेष "नियंत्रण" कुंजियों का संचालन किया जा रहा है। (यह वास्तव में एक "कच्चा" मोड है, जिसमें यह कार्यक्रम के लिए सब कुछ गुजरता है ।) आप stty -a -F /dev/pts/XXवर्तमान मापदंडों को देखने के लिए दूसरे ट्टी से उपयोग कर सकते हैं ।
विशाल

मैं stty -icanon -echo && nc ...अन्यथा उपयोग कर रहा हूँ अन्यथा हर बार जब मैं nc में टाइप किया जाता है तो दो बार गूँज
उठता है
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.