I'm working on a project in Python that I'm having trouble with. I've asked so many people but they seem to not be able to help me :/ I'm coding a little program that executes system commands. The idea is that one machine opens the server and the other one opens the client and connects to the IP / Port. From there they can execute system commands and obtain the output. Only problem is, with the output, I get something like this:
Enter a command: ls got: ls received: 2 Enter a command:
I want the output of the command, and everything I try to add doesn't work.
import sys, socket #socket.setdefaulttimeout(150) host = '' port = 50103 BUFSIZE = 1024 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((host, port)) print("Server started on port: %s"%port) s.listen(1) print("Now listening...\n") #conn = client socket conn, addr = s.accept() while True: print 'New connection from %s:%d' % (addr, addr) data = conn.recv(BUFSIZE) if not data: break elif data == 'exit': conn.send('\0') else: conn.send(data) def quit(connection): connection.close()
import sys import socket BUFSIZE = 1024 conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM) conn.connect(('localhost', 50103)) while True: cmd = raw_input('Enter a command: ') conn.send(cmd) data = conn.recv(BUFSIZE) msglen = len(data) print "got: %s" % data print "received: %d" % msglen if data == '\0': print 'exiting...' sys.exit(0)