উত্তর:
nc( netcat) ব্যবহার করে ।
সার্ভার:
$ nc -l localhost 3000
ক্লায়েন্ট:
$ nc localhost 3000
সার্ভার এবং ক্লায়েন্ট উভয়ই স্ট্যান্ডার্ড আউটপুট / ইনপুট পড়বে এবং লিখবে।
সার্ভার এবং ক্লায়েন্ট উভয়ই একই মেশিনে থাকলে এটি কাজ করবে। অন্যথায় localhostসার্ভারের বাহ্যিক নাম পরিবর্তন করুন ।
কিছুটা আকর্ষণীয়, একটি "সার্ভার" যা আপনাকে দিনের সাথে সময় দেয় যা আপনি এটির সাথে সংযুক্ত হয়ে যদি একটি প্রেরণ করেন dএবং আপনি প্রেরণ করেন তবে কোনটি ছাড়বে নাq :
সার্ভার (ইন bash):
#!/bin/bash
coproc nc -l localhost 3000
while read -r cmd; do
case $cmd in
d) date ;;
q) break ;;
*) echo 'What?'
esac
done <&"${COPROC[0]}" >&"${COPROC[1]}"
kill "$COPROC_PID"
ক্লায়েন্ট সেশন:
। এনসি লোকালহোস্ট 3000 ঘ থু জানুয়ারী 12 18:04:21 সিইটি 2017 হ্যালো? কি? কুই
(সার্ভারটি পরে বেরিয়ে আসে q, কিন্তু ক্লায়েন্ট সনাক্ত করে না যে আপনি চাপ না দেওয়া পর্যন্ত এটি চলে গেছে Enter)।
সাধারণ পরামর্শ সঙ্গে netcatভাল উপায়।
তবে bashএবং kshআপনি এটি করতে পারেন:
exec 3<>/dev/tcp/hostname/port
echo "request" 1>&3
response="$(cat <&3)"
1>&3? এটি কী প্রতিনিধিত্ব করে তা সম্পর্কে আমি নিশ্চিত নই
echo "request" >&3, আমি অনুমান করি যে 1টি কেবলমাত্র অপ্রয়োজনীয়
নেটকাট চেষ্টা করুন (যেমন এনসি)
echo GET / HTTP/1.0 | nc 0 80
HTTP/1.1 400 Bad Request
Date: Thu, 12 Jan 2017 13:44:23 GMT
Server: Apache/2.4.18 (Ubuntu)
Content-Length: 311
Connection: close
Content-Type: text/html; charset=iso-8859-1
echo GET / HTTP/1.0আমার স্থানীয় http সার্ভারে একটি জিইটি ( ) প্রেরণ করিঅনেক ক্ষেত্রেই আমার নেটকাট / সকেটে অ্যাক্সেস নেই। execবিতরণ করা কম্পিউটিং পরিবেশে বাশ ব্যবহার করার ক্ষেত্রে আমারও সমস্যা ছিল ।
এর প্রকোপটির কারণে, বিকল্প সমাধান হ'ল জিএনইউ এডাব্লু কে এর টিসিপি / আইপি ক্ষমতা ব্যবহার করা। এটি এর "দ্বিমুখী পাইপ" অপারেটরের আশেপাশে একটি সাধারণ সিনট্যাক্স সরবরাহ করে।
এখানে এই উত্স থেকে একটি পরিবর্তিত উদাহরণ যা সকেটের মাধ্যমে একটি টিসিপি বার্তা প্রেরণ করবে:
BEGIN {
NetService = "/inet/tcp/0/cs.wisc.edu/finger"
print "coke" |& NetService
close(NetService)
}
ঠিকানার জন্য পূর্ণ বাক্য গঠন হল: /net-type/protocol/local-port/remote-host/remote-port। যখন local-port0 তে সেট করা হয় স্থানীয় হোস্ট পোর্টটি স্বয়ংক্রিয়ভাবে বেছে নেয় যা সাধারণত আপনি চান। gawkএর টিসিপি / আইপি নেটওয়ার্কিং ক্ষমতা সম্পর্কে আপনি এখানে আরও পড়তে পারেন :
ctrl+cদেয়, ফলাফলটি দেখায় না। প্রতিধ্বনি ব্যবহার করে, যেমনecho "cookie" | nc localhost 9090, ক্লায়েন্টের আউটপুট স্ট্রিম বন্ধ হয়ে যাবে (ইওফ প্রেরিত) তবে ক্লায়েন্টটি এখনও সার্ভারের ফলাফলের জন্য অপেক্ষা করবে।