10.17作业

1.TCP三次握手、四次挥手图

2.基于TCP开发一款远程CMD程序
客户端连接服务器后,可以向服务器发送命令
服务器收到命令后执行,无论执行是否成功,无论执行几遍,都将执行结果返回给客户端

注意: 执行系统指令使用subprocess模块完成.

#服务端
import socket
import subprocess

server=socket.socket()
server.bind(
    ('127.0.0.1',8899)
)

server.listen(5)
while True:
    conn,addr=server.accept()
    print(addr)

    while True:
        try:
            cmd=conn.recv(1024).decode('utf8')

            if len(cmd)==0:
                continue

            if cmd=='q':
                break
            conn.send(cmd.encode('utf8'))
            res=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE)
            # print(res)

            data1=res.stdout.read()
            data2=res.stderr.read()

            if data1:
                conn.send(data1)
            else:
                conn.send(data2)
        except Exception as e:
            print(e)
            break
    conn.close()
import socket

client=socket.socket()

client.connect(
    ('127.0.0.1',8899)
)
while True:
    cmd=input('请输入要执行的命令: ').strip()
    client.send(cmd.encode('utf8'))

    if cmd=='q':
        break

    data=client.recv(1024).decode('gbk')
    print(data)

    data1=client.recv(1024).decode('gbk')
    print(data1)

client.close()

猜你喜欢

转载自www.cnblogs.com/lidandanaa/p/11695485.html