zoukankan      html  css  js  c++  java
  • python 并发编程 多线程 多线程实现并发的套接字通信

    进程内会生成一个主线程,让主线程执行server函数,server函数核心是accept(),让主线程干accept的工作, 建立连接,每建立一个连接应该执行通信函数

    每建立一个连接就是生成一个子线程

    服务端

    from socket import *
    from threading import Thread
    
    def communicate(conn):
        ''' 通信功能 '''
        while True:
            try:
                data = conn.recv(1024)
                if not data:break
                conn.send(data.upper())
    
            except ConnectionResetError:
                break
    
        conn.close()
    
    def server(ip,port):
        ''' 负责建立连接 accept'''
    
        server = socket(AF_INET, SOCK_STREAM)
        server.bind((ip,port))
        server.listen(5)
    
        while True:
            conn,addr = server.accept()
    
            t = Thread(target=communicate, args=(conn,),)
            t.start()
    
        server.close()
    
    
    if __name__ == "__main__":
        server('127.0.0.1', 8080)

    客户端

    from socket import *
    
    client = socket(AF_INET, SOCK_STREAM)
    client.connect(('127.0.0.1', 8080))
    
    while True:
        msg = input(">>>:").strip()
        if not msg:break
        client.send(msg.encode("utf-8"))
        data = client.recv(1024)
        print(data.decode("utf-8"))
    
    client.close()

    执行结果

  • 相关阅读:
    Bootstrap (Web前端CSS框架)
    面向对象和构造函数
    BFC(块级格式化上下文)
    图片轮播
    yii 计划任务
    Yii-数据模型- rules类验证器方法详解
    ubuntu下svn使用指南
    PHP加密解密函数
    在 PHP 中结合 Ajax 技术进行图片上传
    CSS3常用功能的写法
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/11139523.html
Copyright © 2011-2022 走看看