tcp连接发送命令客户端接收后返回结果给服务端

 

服务端

import socket

sk = socket.socket()
sk.bind(('127.0.0.1',4567))
sk.listen()

conn, addr = sk.accept()

while 1:
    cmd = input('please input your cmd:')
    if cmd=='q':
        conn.send(b'q')
        break
    conn.send(cmd.encode('gbk'))
    ret =conn.recv(1024).decode('gbk')
    print(ret)
conn.close()
sk.close()

客户端:  

subprocess模块用来接收执行命令, 

res = subprocess.Popen(cmd,shell=True,用来设置系统执行
                     stdout=subprocess.PIPE,存放结果
                     stderr=subprocess.PIPE存放错误结果
import socket
import subprocess

sk = socket.socket()
sk.connect(('127.0.0.1',4567))

while 1:
    cmd = sk.recv(1024).decode('gbk')
    if cmd == b'q':
        break
    # cmd = 'ipconfig'
    res = subprocess.Popen(cmd,shell=True,
                     stdout=subprocess.PIPE,
                     stderr=subprocess.PIPE)
    # print(res.stdout.read().decode('gbk'))
    sk.send(res.stdout.read())
    sk.send(res.stderr.read())

sk.close()

猜你喜欢

转载自www.cnblogs.com/taysem/p/12679352.html