老师的博客:http://www.cnblogs.com/Eva-J/articles/8244551.html#_label5
server
#_*_coding:gbk*_ from socket import * import subprocess ip_port=('192.168.43.155',8888) BUFSIZE=1024 tcp_socket_server=socket(AF_INET,SOCK_STREAM) tcp_socket_server.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) tcp_socket_server.bind(ip_port) tcp_socket_server.listen(1) while True: conn,addr=tcp_socket_server.accept() print('客户端',addr) while True: cmd=conn.recv(BUFSIZE) print(cmd.decode('gbk')) if len(cmd) == 0:break res=subprocess.Popen(cmd.decode('gbk'),shell=True,bufsize=1, stdout=subprocess.PIPE, #标准输出 stdin=subprocess.PIPE,#标准输入 stderr=subprocess.PIPE) #标准错误 stderr=res.stderr.read() print(stderr) stdout=res.stdout.read() print(stderr) conn.send(stderr) conn.send(stdout) conn.close()
client
#_*_coding:gbk*_ import socket BUFSIZE=10240 ip_port=('192.168.43.155',8888) s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect_ex(ip_port) while True: msg=input('>>: ').strip() if len(msg) == 0:continue if msg == 'quit':break s.send(msg.encode('gbk')) act_res=s.recv(BUFSIZE) print(act_res.decode('gbk'),end='')
不知道怎么回事。clientd端运行 ipconfig/all , python 这样的文件时收不到返回值,而随便输入的错误的代码却能够正常的返回错误的的信息