# A python script for echo server over TCPimport socketimport argparseimport sys# Create a TCP/IP socketsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)defstart_server(port=5000):# Create a tuple for server address server_address = ('localhost', port)# Bind the socket to the port sock.bind(server_address)# Listen for incoming connections sock.listen(1)print('Server is listening at {}'.format(sock.getsockname()))whileTrue:# Wait for a connection, and accept it client_socket, client_address = sock.accept()print('Connection from', client_address)# Receive data from client and send it back until client closes connectionwhileTrue: data = client_socket.recv(1024)ifnot data:break client_socket.sendall(data) client_socket.close()print('Client closed connection')if__name__=='__main__':try: parser = argparse.ArgumentParser(description='Socket Server Example') parser.add_argument('--port', action='store', dest='port', type=int, required=False) args = parser.parse_args() port = args.port if args.port else5000 start_server(port)exceptKeyboardInterrupt:print('Interrupted.. closing server')try: sock.close()exceptExceptionas e:print('Could not close socket: {}'.format(e))finally: sys.exit(0)