1017作业

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

三次握手

四次挥手

2.基于TCP开发一款远程CMD程序

客户端连接服务器后,可以向服务器发送命令
服务器收到命令后执行,无论执行是否成功,无论执行几遍,都将执行结果返回给客户端

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

服务端

from socket import *
import subprocess

server=socket(AF_INET,SOCK_DGRAM)
server.bind(('127.0.0.1',9003))

while True:
    #收消息
    cmd,addr=server.recv(1024)
    print('用户命令----->',cmd)

    #逻辑处理
    res=subprocess.Popen(cmd.decode('utf-8'),shell=True,stderr=subprocess.PIPE,stdin=subprocess.PIPE,stdout=subprocess.PIPE)
    stderr=res.stderr.read()
    stdout=res.stdout.read()

    #发消息
    server.sendto(stderr,addr)
    server.sendto(stdout,addr)
server.close()

客户端

from socket import *

client=socket(AF_INET,SOCK_DGRAM)

while True:
    msg=input('>>: ').strip()
    client.sendto(msg.encode('utf-8'),('127.0.0.1',9003))

    data,addr=client.recv(1024)
    print(data.decode('utf-8'),end='')

猜你喜欢

转载自www.cnblogs.com/faye12/p/11693030.html