#!/usr/bin/env python3 """ Remote python client. Execute Python commands remotely and send output back. """ import sys from socket import socket, AF_INET, SOCK_STREAM, SHUT_WR PORT = 4127 BUFSIZE = 1024 def main(): if len(sys.argv) < 3: print("usage: rpython host command") sys.exit(2) host = sys.argv[1] port = PORT i = host.find(':') if i >= 0: port = int(host[i+1:]) host = host[:i] command = ' '.join(sys.argv[2:]) with socket(AF_INET, SOCK_STREAM) as s: s.connect((host, port)) s.send(command.encode()) s.shutdown(SHUT_WR) reply = b'' while True: data = s.recv(BUFSIZE) if not data: break reply += data print(reply.decode(), end=' ') main()