zoukankan      html  css  js  c++  java
  • 010 利用多线程使socket服务端可以与多个客户端同时通讯

    利用多线程使socket服务端可以与多个客户端同时通讯
    server
    import socket
    # 1. 符合TCP协议的手机
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # TCP
    # 2. 绑定手机号 110
    server.bind(('127.0.0.1', 8000))  # 127.0.0.1代表本地
    # server.bind(('192.168.11.210',8000))  # 127.0.0.1代表本地
    server.listen(5)  # 半连接池
    # 3. 等待客户端连接
    print('start...')
    # 链接循环
    while True:
        # 通信循环
        conn, client_addr = server.accept()
        while True:
            try:
                # 4. 收到消息receive
                data = conn.recv(1024)
                print(data)
                # 5. 回消息
                conn.send(data.upper())
            except ConnectionAbortedError:
                continue
            except ConnectionResetError:
                break
            
    client
    #! /user/bin/ebv python
    # -*- encoding:utf-8 -*-
    from threading import Thread
    import socket, random
    count = 0
    # 1. 创建符合TCp协议的手机
    client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    # 2. 拨号
    client.connect(('127.0.0.1',8000))
    def task(i):
        while True:
            msg = input(f'{i}please enter your msg:').strip()  # dir
            # 3. 发送消息
            client.send(msg.encode('utf8'))
            # 4. 接收消息
            data = client.recv(1024)
            print(data)
    if __name__ == '__main__':
        while count <6:
            i = random.randint(0,6)
            t = Thread(target=task, args=(i,))
            t.start()
            print(count)
            count += 1
    
  • 相关阅读:
    go学习中的零散笔记
    git reset --hard与git reset --soft的区别
    php必学必会
    gdb 解core
    php学习
    高仿京东到家APP引导页炫酷动画效果
    RxHttp
    SVN回滚文件
    遍历枚举
    python3 多线程
  • 原文地址:https://www.cnblogs.com/abdm-989/p/11537291.html
Copyright © 2011-2022 走看看