Answered step by step
Verified Expert Solution
Question
1 Approved Answer
For this programming assignment you will create the world's simplest reverse proxy. Again, as in the prior progrogramming assignment, you may program this in the
For this programming assignment you will create the world's simplest reverse proxy. Again, as in the prior progrogramming assignment, you may program this in the language of your choice it doesn't even have to be the same language as the first assignment You will need at least four terminalconsole windows running: one client, one proxy, and at least two server instances.
Please see the note at the bottom of this page if you were not able to complete the prior programming assignment, and need a clientserver to complete this assignment.
Details
proxy
Arguments for upstream ports: arraytuplesetlist whatever your language supports These will be the dynamic ports for the server instances.
Accept traffic on a given port.
Send any 'PING' messages in a roundrobin scheduleLinks to an external site. between all the given upstream ports.
Any replies it receives from upstream, it will send to the downstream client with via $SERVERPORT$SERVERIDX appended to the message
$SERVERPORT is the upstream server port.
$SERVERIDX is the upstream server index in the upstream array.
Example Diagram
port:
server
client proxy
port:
server
port:
In the above example diagram, the proxy is listening on port and is fronting two servers instances listening on port and
Example Output with Client, Proxy, and two Server Instances
Client:
lambda python client.py port
: sent PING... received b'PONG via
: sent PING... Timed Out
: sent PING... Timed Out
: sent PING... received b'PONG via
: sent PING... received b'PONG via
: sent PING... Timed Out
: sent PING... received b'PONG via
: sent PING... received b'PONG via
: sent PING... received b'PONG via
: sent PING... received b'PONG via
Proxy:
lambda python proxy.py port
proxy : ready to proxy data...
Server #:
lambda python server.py port
server : ready to accept data...
client : PING
server : packet dropped
client : PING
client : PING
client : PING
Server #:
lambda python server.py port
server : ready to accept data...
server : packet dropped
client : PING
server : packet dropped
client : PING
server : PING
Deliverables
One source code file for your proxy server eg proxy.py main.go etc.
A README file that explains how to run your program.
Screenshots of your program running they can be running on your own machine or the CSE machine
NOTE: your screenshot should include your name EUID somewhere you can print it at the beginning of your program or change the command prompt to your name, etc
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started