作业:
1.整理TCP三次握手、四次挥手图
2.基于TCP开发一款远程CMD程序
客户端连接服务器后,可以向服务器发送命令
服务器收到命令后执行,无论执行是否成功,无论执行几遍,都将执行结果返回给客户端
注意: 执行系统指令使用subprocess模块完成.
#server
import subprocess
import socket
import time
server = socket.socket()
server.bind(
('127.0.0.1', 8434)
)
server.listen(2)
while True:
conn, addr = server.accept()
print(addr)
while True:
try:
data = conn.recv(1024).decode('utf8')
print(f'from client{addr}: {data}')
a = subprocess.getoutput(data)
if a:
conn.send(a.encode('utf8'))
else:
conn.send('success'.encode('utf8'))
except Exception as e:
print(e)
break
time.sleep(0.01)
#client
import socket
client = socket.socket()
client.connect(
('127.0.0.1', 8434)
)
while True:
send_msg = input('client--> server:')
client.send(send_msg.encode('utf8'))
data = client.recv(1024).decode('utf8')
print(f'from server: {data}')