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()

posted @ 2019-10-17 20:51  断指轩辕  阅读(92)  评论(0编辑  收藏  举报