socketpool

socketpool模块通过池提供套接字。池本身就像 CPython 的 socket 模块。

在这些板上可用
  • ATMegaZero ESP32-S2
  • Adafruit FunHouse
  • Adafruit MagTag
  • Adafruit Metro ESP32S2
  • Artisense Reference Design RD00
  • BastWiFi
  • CrumpS2
  • ESP 12k NodeMCU
  • Feather ESP32S2 without PSRAM
  • FeatherS2
  • FeatherS2 Neo
  • FeatherS2 PreRelease
  • Franzininho WIFI w/Wroom
  • Franzininho WIFI w/Wrover
  • Gravitech Cucumber M
  • Gravitech Cucumber MS
  • Gravitech Cucumber R
  • Gravitech Cucumber RS
  • HMI-DevKit-1.1
  • Kaluga 1
  • LILYGO TTGO T8 ESP32-S2 w/Display
  • MORPHEANS MorphESP-240
  • Oak Dev Tech PixelWing ESP32S2
  • S2Mini
  • Saola 1 w/Wroom
  • Saola 1 w/Wrover
  • Targett Module Clip w/Wroom
  • Targett Module Clip w/Wrover
  • TinyS2
  • microS2
  • nanoESP32-S2 w/Wrover
  • nanoESP32-S2 w/Wroom

class socketpool.Socket

TCP、UDP 和 RAW 套接字。不能直接创建。相反,调用 SocketPool.socket().

提供 CPython 的socket.socket API 的一个子集。它只实现不分配字节对象的 recv 版本。

__enter__(self)Socket

上下文管理器使用的无操作。

__exit__(self)None

退出上下文时自动关闭 Socket。有关更多信息,请参阅 Lifetime 和ContextManagers

accept(self)Tuple[Socket, Tuple[str, int]]

接受 SOCK_STREAM 类型的侦听套接字上的连接,创建 SOCK_STREAM 类型的新套接字。返回 (new_socket, remote_address) 的元组

bind(self, address: Tuple[str, int])None

将套接字绑定到地址

参数

address (~tuple) – (remote_address, remote_port) 的元组

close(self)None

关闭此 Socket 并使其资源可用于其 SocketPool。

connect(self, address: Tuple[str, int])None

将套接字连接到远程地址

参数

address (~tuple) – (remote_address, remote_port) 的元组

listen(self, backlog: int)None

设置套接字以侦听传入连接

参数

backlog (~int) – 等待连接的 backlog 队列长度

recvfrom_into(self, buffer: _typing.WriteableBuffer)Tuple[int, Tuple[str, int]]

从远程地址读取一些字节。

返回一个元组,其中包含 * 接收到给定缓冲区的字节数 * 一个 remote_address,它是一个 ip 地址和端口号的元组

参数

buffer (object) – 要读入的缓冲区

recv_into(self, buffer: _typing.WriteableBuffer, bufsize: int)int

从连接的远程地址读取一些字节,写入提供的缓冲区。如果给定 bufsize <= len(buffer),则最多将 bufsize 字节读入缓冲区。如果没有为 bufsize 提供有效值,则默认值为给定缓冲区的长度。

适合 SOCK_STREAM 类型的套接字返回读取的字节数的 int。

参数
  • buffer (bytearray) – 要接收的缓冲区

  • bufsize (int) – 可选,要读取的最大字节数。

send(self, bytes: _typing.ReadableBuffer)int

向连接的远程地址发送一些字节。适合 SOCK_STREAM 类型的套接字

参数

bytes (~bytes) – 要发送的一些字节

sendto(self, bytes: _typing.ReadableBuffer, address: Tuple[str, int])int

将一些字节发送到特定地址。适合 SOCK_DGRAM 类型的套接字

参数
  • bytes (~bytes) – 要发送的一些字节

  • address (~tuple) – (remote_address, remote_port) 的元组

setblocking(self, flag: bool)Optional[int]

设置此套接字的阻塞行为。

参数

flag (~bool) –False 表示非阻塞,True 表示无限期阻塞。

settimeout(self, value: int)None

设置此套接字的超时值。

Parameters

value (~int) – 以秒为单位的超时时间。0 表示非阻塞。None 表示无限期阻止。

__hash__(self)int

返回 Socket 的哈希值。

class socketpool.SocketPool

可用于给定无线电的套接字资源池。只能为每个无线电创建一个 SocketPool。

应该使用 SocketPool 代替 CPython 的套接字,后者提供由底层操作系统提供的套接字池。

AF_INET :int
AF_INET6 :int
SOCK_STREAM :int
SOCK_DGRAM :int
SOCK_RAW :int
socket(self, family: int = AF_INET, type: int = SOCK_STREAM)Socket

创建一个新的套接字

参数
  • family (~int) – AF_INET 或 AF_INET6

  • type (~int) – SOCK_STREAM、SOCK_DGRAM 或 SOCK_RAW

socketpool.getaddrinfo(host: str, port: int, family: int = 0, type: int = 0, proto: int = 0, flags: int = 0)Tuple[int, int, int, str, Tuple[str, int]]

获取主机名和端口的地址信息

返回适当的族、套接字类型、套接字协议和地址信息以作为元组调用 socket.socket() 和 socket.connect()。