Home | History | Annotate | Download | only in demo
      1 #!/usr/bin/env python3
      2 
      3 """
      4 Remote python client.
      5 Execute Python commands remotely and send output back.
      6 """
      7 
      8 import sys
      9 from socket import socket, AF_INET, SOCK_STREAM, SHUT_WR
     10 
     11 PORT = 4127
     12 BUFSIZE = 1024
     13 
     14 def main():
     15     if len(sys.argv) < 3:
     16         print("usage: rpython host command")
     17         sys.exit(2)
     18     host = sys.argv[1]
     19     port = PORT
     20     i = host.find(':')
     21     if i >= 0:
     22         port = int(port[i+1:])
     23         host = host[:i]
     24     command = ' '.join(sys.argv[2:])
     25     s = socket(AF_INET, SOCK_STREAM)
     26     s.connect((host, port))
     27     s.send(command.encode())
     28     s.shutdown(SHUT_WR)
     29     reply = b''
     30     while True:
     31         data = s.recv(BUFSIZE)
     32         if not data:
     33             break
     34         reply += data
     35     print(reply.decode(), end=' ')
     36     s.close()
     37 
     38 main()
     39