Created
February 10, 2021 20:07
-
-
Save mwicat/5530bae5393327caa39470a043af168f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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