我试图创建一个程序,可以通过TCP python服务器在我的其他PC上执行命令行命令...但是当我想得到我的命令的结果它只是卡在那里什么也没做,盯着我..帮助将不胜感激
客户端:
try:
sock.sendall("3")
if sock.recv(10000) == "ready for sandbox":
print "ready to transmit"
except:
print "error"
sys.exit(1)
while True:
try:
command = raw_input("--> ")
sock.sendall(command)
sock.recv(10000)
except:
print "connection lost"
sys.exit(1)
服务器:
while True:
data = connection.recv(10000)
print >>sys.stderr, 'received "%s"' % data
elif data == "3":
connection.sendall("ready for sandbox")
while True:
try:
cmd_data = connection.recv(10000)
os.system(cmd_data +" > C:\output.txt")
result = open(r"C:\output.txt",'r').readlines()
connection.sendall(result)
except:
pass
我希望能够随着客户端始终发送命令并接收其输出......并且服务器应尽可能没有错误或至少不会崩溃
顺便说一下..如果你发现缩进错误,我的程序中的缩进是可以的,这可能是因为stackoverflow ......
服务器cmd:
starting up on localhost port 10000
waiting for connection
connection from ('127.0.0.1', 52674)
received "3"
客户端cmd:
--> 3
connecting to localhost port 10000
ready to transmit
--> dir
帮助? :(
答案 0 :(得分:0)
问题在于它尝试发送循环而不是字符串,因此修复循环并且str(result)
完成了这项工作......现在完美无缺地工作