একটি সাধারণ প্রক্সি তৈরি করুন


9

সংক্ষিপ্ততম প্রক্সি সার্ভার তৈরি করুন।

ইনপুট / আউটপুট বিশেষ উল্লেখ

ক্লায়েন্ট:

  • ইনপুট: একটি পোর্ট নম্বর (32-বিট পূর্ণসংখ্যা) (,) বা (স্পেস) একটি ইউআরএল (পরীক্ষার কেস দেখুন)
  • আউটপুট: ইউআরএল এর এইচটিএমএল উত্স

সার্ভার:

  • ইনপুট: শুনতে পোর্ট (32-বিট পূর্ণসংখ্যা)
  • আউটপুট: আরইসি যখন ক্লায়েন্টের কাছ থেকে ইনপুট পাওয়া যায়, ঠিক তখন ক্লায়েন্টকে এইচটিএমএল উত্স প্রেরণ শেষ হয়।

বিধি

  • আপনি হয় একটি সম্পূর্ণ প্রোগ্রাম করতে পারেন বা একটি ব্যাখ্যা ভাষায় ফাংশন
  • স্টিডিনের মাধ্যমে ইনপুট নেওয়া হয় বা আর্গুমেন্ট হিসাবে দেওয়া হয় ।
  • আপনার কোডটি কেবলমাত্র প্রদত্ত পরীক্ষার ক্ষেত্রে কাজ করতে হবে (আরও (চ্ছিক, কম অবৈধ)।
  • আপনি যখন কোনও ব্রাউজার থেকে "উত্স দেখেন" তখন আপনি যা পাবেন তার সাথে ক্লায়েন্ট আউটপুট একই হতে হবে।
  • প্রতিটি পরিচালিত অনুরোধের পরে সার্ভারটি প্রস্থান করতে পারে (যেমন স্থির / ডিমন হতে হবে না)
  • ( সম্পাদনা ) নির্দিষ্ট করা ব্যতীত অন্য কোনও ইনপুট / আউটপুট নিষিদ্ধ।

পরীক্ষার কেস (ক্লায়েন্ট ইনপুট)

  1. এন 1 https://stackoverflow.com/
  2. এন 2 http://en.wikedia.org/wiki/Proxy_server
  3. এন 3 http://stackexchange.com/search?q=code+ গল্ফ

যেখানে এন i 1 এবং 2048 এর মধ্যে এলোমেলোভাবে পূর্ণসংখ্যা হয়।


সার্ভারটি কি পুনরায় ব্যবহারযোগ্য হতে হবে? বা এটি একটি শট প্রক্সি হতে পারে?
নিমো 157

@ নেমো: আপনি পুনঃব্যবহারযোগ্য বলতে কী বোঝায়? (তবে আমি মনে করি উত্তরটি "হ্যাঁ এটি একটি শট হতে পারে")
এলেভেক্স

@ নেমো: হ্যাঁ, ঠিকঠাক অনুরোধের পরে সার্ভারটি যদি প্রস্থান করে তবে এটি ঠিক আছে।
এলেভেক্স

উত্তর:


4

ZSH - 57 + 42 টি অক্ষর

সার্ভার:

s=$(nc -l $1)
echo REC
curl -s $s|nc 127.0.0.1 $1
echo OK

ক্লায়েন্ট:

echo $2|nc 127.0.0.1 $1
echo "$(nc -l $1)"

ব্যবহার:

sudo zsh server.zsh 123

sudo zsh client.zsh 123 http://stackoverflow.com/
sudo zsh client.zsh 123 http://en.wikipedia.org/wiki/Proxy_server
sudo zsh client.zsh 123 "http://stackexchange.com/search?q=code+golf"

আমি সর্বশেষে zsh ব্যবহার করেছি তার পরে কিছুক্ষণ হয়েছে, কিন্তু শেলটি ব্যবহার করার সময় আপনি কী সমস্ত উদ্ধৃতি (বাশের জন্য প্রয়োজনীয়) থেকে মুক্তি পেতে পারবেন না?
প্লিজস্ট্যান্ড

@ আইডালমাচাইন: আমার মনে হয় যে ক্লায়েন্টটির দ্বিতীয় লাইনে থাকাগুলি প্রয়োজনীয় বলে মনে হচ্ছে, আমি কেবল স্ট্যাক এক্সচেঞ্জ অনুসন্ধান থেকে পাদচরণটি ফিরিয়ে আনছিলাম। অন্যগুলি, আমি সম্পর্কে নিশ্চিত নই, যদিও তারা এগুলি ছাড়া কাজ করবে। আমি আসলে zsh তে খুব বেশি স্ক্রিপ্টিং করি না।
নিমো 157

হ্যাঁ, কার্লটি নিঃশব্দ করা উচিত (স্পষ্ট করার জন্য আপডেট বিধিগুলি)।
এভেলেক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.