-qপতাকা ছাড়া আপনার উদাহরণ netcatচিরকাল অপেক্ষা করবে। ইউডিপির সাথে কোনও "স্ট্রিমের শেষ" বার্তা নেই তাই স্টিডিন এবং নেটওয়ার্ক সংযোগ netcatউভয়ই শেষ হয়ে গেছে তা জানার উপায় নেই ।
উদাহরণস্বরূপ, টিসিপি / আইপি ব্যবহার করা এটি প্রত্যাশার মতো কাজ করে:
nc -l localhost 4300 # Window 1
nc localhost 4300 </etc/group # Window 2
তবে আপনি যেমন স্থির করেছেন, ইউডিপি / আইপি ব্যবহার করে এটি কখনই শেষ হয় না:
nc -u -l localhost 4300 # Window 1
nc -u localhost 4300 </etc/group # Window 2
এই কোথায় -qপতাকা আসে। কিন্তু দুর্ভাগ্যবশত এটি একটি মান গ্রহণ করে না 0। এটি অ-পূর্ণসংখ্যার মানগুলিও গ্রহণ করবে না। এখানে বিকল্প timeoutবা অন্য কোনও বাহ্যিক উপযোগের আশ্রয় ছাড়াই আমি দিতে পারি সেরা বিকল্প :
nc -u -l localhost 4300 # Window 1
nc -q 1 -u localhost 4300 </etc/group # Window 2
এমনকি এখানে, শ্রুতি netcatসময়টি মনোযোগ সহকারে করা সম্ভব নয় । ( -wসময়সীমার বিকল্প উপেক্ষা করা হয়, এবং -qঅপ্রাসঙ্গিক।) এই ভালো কিছু, বাস্তবসম্মত অবস্থায় ব্যবহারের হতে পারে, যাতে netcat90 সেকেন্ড পর নিহত হয়:
timeout 90 nc -u -l localhost 4300 # Window 1
nc -q 1 -u localhost 4300 </etc/group # Window 2
-q।