python IO多路复用

Posted wt7018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python IO多路复用相关的知识,希望对你有一定的参考价值。

基于select

server端

import select
import socket

sk = socket.socket()
sk.bind((127.0.0.1, 8010))
sk.setblocking(False)
sk.listen()

read_lst = [sk]     #
while True:   # [sk,conn]
    # select提供监听
    r_lst, w_lst, x_lst = select.select(read_lst, [], [])
    # print(read_lst)
    for i in r_lst:
        if i is sk:
            conn, addr = i.accept()
            read_lst.append(conn)
        else:
            ret = i.recv(1024)
            if ret == b‘‘:
                i.close()
                read_lst.remove(i)
                continue
            print(ret)
            i.send(bbye!)

client端

import time
import socket
import threading


def func():
    sk = socket.socket()
    sk.connect((127.0.0.1, 8010))
    sk.send(bhello)
    time.sleep(3)
    print(sk.recv(1024))
    sk.close()


for i in range(5):
    threading.Thread(target=func).start()

主要作用:定制异步框架

以上是关于python IO多路复用的主要内容,如果未能解决你的问题,请参考以下文章

python IO 多路复用

python-- IO多路复用(selectpollepoll)介绍及实现

Python IO多路复用

python并发编程-多路复用IO

{python之IO多路复用} IO模型介绍 阻塞IO(blocking IO) 非阻塞IO(non-blocking IO) 多路复用IO(IO multiplexing) 异步IO

Python IO多路复用select模块