#!/usr/bin/python

import sys
import socket
import os

bufsize = 4096 # max length of command from client

# guard
if len(sys.argv) != 2:
  print "Syntax: "+sys.argv[0]+" port"
  sys.exit(1)

# set up server socket
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind((socket.gethostname(), int(sys.argv[1])))
serversocket.listen(5)

# start service loop
try:
  while 1:
    (clientsocket, clientaddress) = serversocket.accept()
    print "Client connected from "+clientaddress[0]+":"+str(clientaddress[1])
  
    cmd = "dummy"
    while (cmd != ""):
      cmd = clientsocket.recv(bufsize).rstrip()
      if cmd == '':
        break
      print "cmd["+cmd+"]"
      fh = os.popen(cmd)
      output = fh.readlines()
      fh.close
      clientsocket.send(''.join(output))
except KeyboardInterrupt:
  print "-- interrupted --"
  sys.exit(1)
