एक सरल छद्म का निर्माण करें


9

सबसे छोटा प्रॉक्सी सर्वर बनाएं।

इनपुट / आउटपुट विनिर्देशों

ग्राहक:

  • इनपुट: एक पोर्ट संख्या (32-बिट पूर्णांक) (,) या (स्पेस) एक यूआरएल (परीक्षण मामलों को देखें)
  • आउटपुट: url का html स्रोत

सर्वर:

  • इनपुट: सुनने के लिए पोर्ट (32-बिट पूर्णांक)
  • आउटपुट: आरईसी जब क्लाइंट से इनपुट प्राप्त होता है, तो क्लाइंट को html स्रोत भेजना ठीक है

नियम

  • आप व्याख्या किए गए भाषा में या तो एक संपूर्ण कार्यक्रम या कार्य कर सकते हैं
  • इनपुट स्टड के माध्यम से लिया जाता है या एक तर्क के रूप में दिया जाता है ।
  • आपके कोड को केवल दिए गए परीक्षण मामलों के लिए काम करना होगा (अधिक वैकल्पिक है, कम अमान्य है)।
  • क्लाइंट आउटपुट को वैसा ही होना चाहिए जैसा आपको ब्राउज़र से "व्यू सोर्स" मिलने पर मिलता है।
  • सर्वर प्रत्येक नियंत्रित अनुरोध के बाद बाहर निकल सकता है (यानी लगातार / डेमॉन होना जरूरी नहीं है)
  • ( संपादित करें ) निर्दिष्ट किए गए किसी भी अन्य इनपुट / आउटपुट को निषिद्ध है।

परीक्षण के मामले (ग्राहक इनपुट)

  1. एन 1 https://stackoverflow.com/
  2. एन 2 http://en.wikipedia.org/wiki/Proxy_server
  3. एन 3 http://stackexchange.com/search?q=code+golf

जहाँ N 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 का उपयोग किया है, तब से यह एक समय हो गया है, लेकिन क्या आप उस शेल का उपयोग करते समय सभी उद्धरण (bash के लिए आवश्यक) से छुटकारा नहीं पा सकते हैं?
कृपया

@idealmachine: मेरे विचार से क्लाइंट की दूसरी पंक्ति के लोग आवश्यक हैं, मैं केवल StackExchange खोज से पाद लेख प्राप्त कर रहा था। अन्य लोगों के बारे में, मुझे यकीन नहीं है, हालांकि उनके बिना काम करने लगता है। मैं वास्तव में zsh में ज्यादा स्क्रिप्टिंग नहीं करता।
निमो 157

हां, कर्ल को बंद कर दिया जाना चाहिए (स्पष्ट करने के लिए अद्यतन नियम)।
अट्ठारह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.