Skip to content

Instantly share code, notes, and snippets.

@mwicat
Created February 10, 2021 20:07
Show Gist options
  • Select an option

  • Save mwicat/5530bae5393327caa39470a043af168f to your computer and use it in GitHub Desktop.

Select an option

Save mwicat/5530bae5393327caa39470a043af168f to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
from __future__ import print_function
import sys
import time
try:
import socketserver
except ImportError:
import SocketServer as socketserver
class MyTCPHandler(socketserver.StreamRequestHandler):
def handle(self):
if sleep_time is not None:
time.sleep(sleep_time)
while True:
data = self.rfile.readline().strip()
print("{} wrote:".format(self.client_address[0]))
print(data)
resp = data.upper() + '\n'
self.wfile.write(resp)
if __name__ == "__main__":
if len(sys.argv) < 3:
print('Usage: %s BIND_HOST BIND_PORT [SLEEP_TIME]' % (sys.argv[0],))
sys.exit(1)
host = sys.argv[1]
port = int(sys.argv[2])
global sleep_time
sleep_time = None
if len(sys.argv) >= 4:
sleep_time = int(sys.argv[3])
socketserver.TCPServer.allow_reuse_address = True
server = socketserver.TCPServer((host, port), MyTCPHandler)
print('Listening on %s:%d...' % (host, port))
server.serve_forever()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment