# Build a simple proxy

Make the shortest proxy server.

### Input/Output Specifications

Client:

• Input: a port number (32-bit integer) (,) or (space) a url (see test cases)
• Output: html source of the url

Server:

• Input: port to listen to (32-bit integer)
• Output: REC when input is received from the client, OK when finished sending the html source to the client.

### Rules

• You may make either a complete program or functions in an interpreted language.
• Input is taken through stdin or given as a arguments.
• Your code has to work for the given test cases only (more is optional, less is invalid).
• The client output has to be the same as with what you get when you "view source" from a browser.
• The server may exit after each handled request (i.e does not have to be persistent/daemon)
• (edit) Any other input/output than what specified, is forbidden.

### Test cases (client inputs)

where Ni are random integers between 1 and 2048.

• Does the server have to be reusable? Or can it be a one-shot proxy? – Nemo157 Mar 13 '11 at 21:29
• @Nemo: what do you mean reusable? (but I suppose the answer is "yes it can be a one-shot") – Eelvex Mar 13 '11 at 21:41
• @Nemo: yes, it is ok if the server exits after a well handled request. – Eelvex Mar 13 '11 at 21:59

## ZSH - 57 + 42 characters

Server:

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


Client:

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


Usage:

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"

• It's been a while since I last used zsh, but can't you get rid of all the quotes (necessary for bash) when using that shell? – PleaseStand Mar 13 '11 at 21:58
• @idealmachine: The ones on the second line of the client I think are necessary, I was only getting the footer back from the StackExchange search. The other ones, I'm not sure about, seems to work without them though. I don't really do much scripting in zsh. – Nemo157 Mar 13 '11 at 22:05
• Yes, curl should be silenced (updated rules to clarify). – Eelvex Mar 13 '11 at 22:31