10.17 作业
1.
三次握手建连接
发送连接请求;反馈确认请求,并发送连接请求;反馈确认连接.成功连接
四次挥手断连接
发送断连接信息;反馈信息;确认信息完整,发送同意断连接信息;反馈信息.连接断开
2.
服务端
import socket
import subprocess
server = socket.socket()
server.bind(
('127.0.0.1', 8888)
)
server.listen(5) # 半连接池,可以“等待5个用户接受服务”
while True:
# 等待客户端连接过来
conn, addr = server.accept()
print(addr)
# 循环接收客户端数据
while True:
try:
data = conn.recv(1024).decode('utf-8')
print(data)
a = subprocess.getoutput(data)
# mac和linux系统bug: b''
if not a:
conn.send("成功".encode("utf-8"))
conn.send(a.encode('utf-8'))
except Exception as e:
print(e)
break
conn.close()
客户端
import socket
client = socket.socket()
client.connect(
('127.0.0.1', 8888)
)
while True:
send_msg = input('client---》server:')
client.send(send_msg.encode('utf-8'))
if send_msg == 'q':
break
data = client.recv(1024).decode('utf-8')
print(data)
client.close()