python

python中select的用法是什么

小亿
115
2024-01-17 02:02:53
栏目: 编程语言

在Python中,select()是一个用于多路复用的函数。它可以同时监视多个文件对象(包括套接字)的读写状态,当其中任何一个文件对象就绪(可读或可写)时,select()函数将返回该文件对象。

select()函数的基本语法如下:

read_list, write_list, error_list = select.select(inputs, outputs, exceptions, timeout)

参数说明:

返回值说明:

示例用法:

import select
import socket

# 创建套接字并监听
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 8000))
server_socket.listen(5)

inputs = [server_socket]

while True:
    # 使用select函数进行监视
    readable, writable, exceptional = select.select(inputs, [], [])

    for sock in readable:
        if sock is server_socket:
            # 有新的连接请求
            client_socket, client_address = server_socket.accept()
            inputs.append(client_socket)
        else:
            # 有数据可读
            data = sock.recv(1024)
            if data:
                print('Received:', data.decode())
            else:
                # 客户端断开连接
                sock.close()
                inputs.remove(sock)

以上示例中,使用select()函数来监视套接字对象的可读状态。当有新的连接请求时,将新的客户端套接字添加到inputs列表中,当客户端发送数据时,将数据打印出来。

0
看了该问题的人还看了