একটি একক টিসিপি সংযোগ গঠনের একটি সাধারণ ক্ষেত্রে প্রকৃতপক্ষে দ্বৈত জোড়া socat
এবং cpipe
ইউনিক্স ফ্যাশনে এটি একত্রিত করা যেতে পারে :
socat TCP-LISTEN:5555,reuseaddr,reuseport,fork SYSTEM:'cpipe -ngr -b 1 -s 10 | socat - "TCP:localhost:5000" | cpipe -ngr -b 1 -s 300'
এই প্রায় 300kB / সেকেন্ড ব্যান্ডউইথ সঙ্গে একটি সংযোগ simulates থেকে আপনার সেবা :5000
এবং করতে আনুমানিক এ 10KB / s এবং উপর শোনা :5555
ইনকামিং সংযোগের। ক্যাভেট : নোট করুন যে এটি প্রতি সংযোগ , সুতরাং প্রতিটি পৃথক টিসিপি সংযোগ এই পরিমাণটি পায়।
ব্যাখ্যা: বাইরের (বাম) ফর্কিং সার্ভার হিসাবে socat
প্রদত্ত বিকল্পগুলির সাথে :5555
শোনায়। প্রথম cpipe
কমান্ড SYSTEM:...
বিকল্প তারপর ডেটা আছে যা গিয়েছিলাম throttles মধ্যে সকেট: 5555 (এবং প্রথম, বাইরের থেকে বেরিয়ে আসে socat
) সবচেয়ে 10kByte এ / s। সেই ডেটা তখন অন্যটি socat
যা সংযোগ করে তা ব্যবহার করে ফরওয়ার্ড করছে localhost:5000
(যেখানে আপনি যে পরিষেবাটি ধীর করতে চান তা শোনা উচিত)। ডেটা থেকে localhost:5000
তারপর ডানদিকে পুরা হয়cpipe
/ s কমান্ড, যা (প্রদত্ত মান) 300kB সম্পর্কে তা throttles।
বিকল্প -ngr
থেকেcpipe
গুরুত্বপূর্ণ। এটি সিপাইপকে এর ইনপুট ফাইল-বর্ণনাকারী থেকে অ-লোভজনকভাবে পড়ার কারণ করে। অন্যথায়, আপনি বাফারগুলি ফরোয়ার্ড না করা এবং জবাবের অপেক্ষায় থাকা ডেটা দিয়ে আটকে যেতে পারেন।
এর buffer
পরিবর্তে আরও সাধারণ সরঞ্জাম ব্যবহার cpipe
করাও সম্ভবত সম্ভব।
(ক্রেডিট: এটি socat
ডকুমেন্টেশন থেকে ক্রিস্টোফ লুরের "ডাবল-টি" রেসিপিটির উপর ভিত্তি করে )