একটি একক টিসিপি সংযোগ গঠনের একটি সাধারণ ক্ষেত্রে প্রকৃতপক্ষে দ্বৈত জোড়া 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ডকুমেন্টেশন থেকে ক্রিস্টোফ লুরের "ডাবল-টি" রেসিপিটির উপর ভিত্তি করে )