এনসি (নেটক্যাট) ঝুলছে, আরও ডেটার জন্য অপেক্ষা করছে, ইউডিপি মোডে।


16

আমি একটি রিড ব্লকের ভিতরে এনসি এর মাধ্যমে স্ট্যাটসডে একটি ছোট স্ট্রিং প্রেরণের চেষ্টা করছি:

while read line; do
    printf "folder.counter:value|1c" | nc -q 0 -u $host $port
done

দুর্ভাগ্যক্রমে, যখন ইউডিপি মোডে, এনসি অনির্দিষ্টকালের জন্য অপেক্ষা করতে চায় বলে মনে হচ্ছে, যদিও আমি উল্লেখ করেছি -q 0, যা পুরুষ পৃষ্ঠাটি বলছে ইওএফের সাথে সাথে প্রোগ্রামটি প্রস্থান করবে।

আমি পাস করার চেষ্টা করেছি -w 1, তবে যদি আমি যে ডেটা পাঠাচ্ছি তা যদি প্রতি সেকেন্ডে এক লাইনের বেশি আসে তবে ডেটা বাফার হয়ে যায় এবং আমি আমার আসল সময়ের পরিসংখ্যানটি হারাতে পারি (কোনও ধরণের বাফার ওভারফ্লো ঝুঁকির কথা উল্লেখ না করে)।

নেটকাট দিয়ে আমি যা করার চেষ্টা করছি তা করা কি সম্ভব, না কি আমার স্ট্যাটাসড লাইব্রেরি আছে এমন ভাষায় এমন কিছু লিখতে হবে?


যদিও এটি আপনার সমাধান করেনি, -ক 0 যোগ করে আমার সমস্যার সমাধান হয়েছে
কলিন

এটি এখন টিসিপি মোডে ঘটে যা আমাকে এখানে এনেছিল।
বাইতজ

উত্তর:


9

আমি স্যুইচ করে সমস্যার সমাধানটি শেষ করেছি socat:

while read line; do
    printf "folder.counter:value|1c" | socat -t 0 - UDP:$host:$port
done

যেহেতু অন্য কোনও ইনপুট ছিল না, এবং এটি আমার সমস্যার সমাধান করেছে, আমি এটিকে উত্তর হিসাবে চিহ্নিত করছি।
bshacklett

আপনি নেটক্যাটটিতে 1 সেকেন্ড টাইমআউট যুক্ত করতে পারতেন (আর্গুমেন্ট -1 1 সম্ভবত কাজ করত) যোগ করে।
পারকামার্ক

7

আপনি 0-কে টাইমআউট মান হিসাবে নির্দিষ্ট করতে পারেন, সুতরাং এটি মোটেও অপেক্ষা করবে না।


এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
পেট্রুস কে।

3
জিরো সময়সীমা অগ্রহণযোগ্য, ত্রুটি:invalid wait-time 0
অ্যাস্ট্রসার্জ

2

যুক্ত করা -v বিকল্পটি আমার সমস্যার সমাধান করে। কারণ আমি নিশ্চিত না।


2

আমার একই সমস্যা ছিল; -cবিকল্পটি ব্যবহার করে এটি সমাধান করুন :

-c, --close                close connection on EOF from stdin

তাই কিছু

while read line; do
    printf "folder.counter:value|1c" | nc -cu $host $port
done

হ্যাঁ, ইউডিপি-সংযোগ "বন্ধ" করার সত্যিকার অর্থে কোনও অর্থ নেই - তবে এটি কাজ শেষ করে।


যুক্ত করে -cআমার সমস্যার সমাধান করাnetcat (The GNU Netcat) 0.7.1
নোহ সুসমান

0

আমাদের জন্য, এটি ছিল যে আমরা পাইথন স্ক্রিপ্টের মাধ্যমে একটি মেশিন থেকে অন্য মেশিনে একটি এনসি পেডলোড প্রেরণ করছিলাম। অজগরটিতে, যখন আমরা স্পষ্টভাবে 'ইউটিএফ -8' তে পে-লোড এনকোড করেছি, এটি ঠিক কাজ করেছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.