socket客户端连续消息发送

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/85011453

一 服务端程序

# 导入模块
import socket
import random

# 创建实例
sk = socket.socket()

# 定义需要绑定的ip和端口
ip_port = ("127.0.0.1", 8888)

# 绑定监听
sk.bind(ip_port)

# 最大连接数
sk.listen(5)
# 不断循环,不断接收数据
while True:
    # 提示信息
    print("正在进行等待接收收据......")
    # 接收数据
    conn, address=sk.accept()
    # 定义信息
    msg = "连接成功!"
    # 返回信息
    # python 3.x以上,网络数据的发送和接收都是byte类型
    # 如果发送的数据是str类型,则需要进行编码
    conn.send(msg.encode())
    # 不断接收客户端发来的信息
    while True:
        # 接收客户端消息
        data = conn.recv(1024)
        # 打印数据
        print(data.decode())
        # 接收退出指令
        if data == b'exit':
            break
        # 处理客户端数据
        conn.send(data)
        # 发送随机数
        conn.send(str(random.randint(1,1000)).encode())
    # 主动关闭
    conn.close()

二 客户端程序

# 导入模块
import socket

# 创建实例
client =socket.socket()
#访问的服务端的ip和端口
ip_port=("127.0.0.1",8888)
# 连接主机
client.connect(ip_port)

#定义一个循环,不断发送消息
while True:
    # 接收主机信息
    data = client.recv(1024)
    # 打印接收的数据
    # 此处byte型数据特指python3.x以上
    print(data.decode())
    # 输入发送的消息
    msg_input=input("请输入发送的消息")
    # 消息发送
    client.send(msg_input.encode())
    if msg_input=="exit":
        break
    data = client.recv(1024)
    print(data.decode())

三 运行结果

1 服务端

E:\Python\python_lab\venv\Scripts\python.exe E:/Python/python_lab/socketserver.py

正在进行等待接收收据......

cpu 80%

mem 70%

exit

正在进行等待接收收据......

2 客户端

E:\Python\python_lab\venv\Scripts\python.exe E:/Python/python_lab/socket_clent.py

连接成功!

请输入发送的消息cpu 80%

cpu 80%

719

请输入发送的消息mem 70%

mem 70%

773

请输入发送的消息exit

Process finished with exit code 0

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/85011453