XAsyncSockets es una biblioteca Python/MicroPython eficiente de sockets asíncronos administrados.
Muy fácil de integrar y muy ligero con un solo archivo:
Características de XAsyncSockets:
- Sockets asíncronos administrados en un grupo (¡hasta miles!)
- Trabaja directamente con E/S para recibir y enviar muy rápidamente
- Admite una gran cantidad de conexiones TCP simultáneas
- Admite operaciones de procesamiento sincrónico concurrente si es necesario (roscado)
- Implementación de servidores TCP.
- Implementación de clientes TCP.
- Implementación de datagramas UDP (remitente y/o receptor)
- El cliente TCP puede ocurrir después de recibir un tamaño específico de datos o una línea de texto
- Cada conexión y recepción puede esperar durante un tiempo específico.
- Se devuelven los motivos del cierre de clientes TCP.
- Realmente robusto, muy rápido y fácil de usar.
- Compatible con la implementación de MicroPython (capa de sockets, cola FiFo, contador de rendimiento)
Clases XAsyncSockets :
nombre de clase | Descripción |
---|
XAsyncSocketsPool | Grupo administrado de objetos 'XAsyncSocket' |
XCerradoMotivo | Enumerador de motivos de cierre de 'XAsyncSocket' |
XAsyncSocket | Clase abstracta de sockets asíncronos administrados |
Servidor XAsyncTCPServer | Implementación del servidor TCP de 'XAsyncSocket' |
Cliente XAsyncTCPC | Implementación del cliente TCP de 'XAsyncSocket' |
XAsyncUDPDatagrama | Implementación de remitente/receptor UDP de 'XAsyncSocket' |
Ranura XBuffer | Búfer administrado |
XBufferSlots | Colección de buffers administrados |
XFiFo | Cola FiFo dedicada |
Excepciones de XAsyncSockets :
nombre de clase | Descripción |
---|
Excepción XAsyncSocketsPool | Clase de excepción para 'XAsyncSocketsPool' |
Excepción XAsyncSocket | Clase de excepción para 'XAsyncSocket' |
Excepción XAsyncTCPServerException | Clase de excepción para 'XAsyncTCPServer' |
Excepción XAsyncTCPClientException | Clase de excepción para 'XAsyncTCPClient' |
Excepción XAsyncUDPDatagram | Clase de excepción para 'XAsyncUDPDatagram' |
Excepción XFiFo | Clase de excepción para 'XFiFo' |
Detalles de la clase XAsyncSocketsPool :
Método | Argumentos |
---|
Constructor | Ninguno |
ObtenerTodosAsyncSockets | Ninguno |
ObtenerAsyncSocketByID | id (int) |
Eventos AsyncWait | threadsCount=0 (int) |
DetenerEsperarEventos | Ninguno |
Propiedad | Detalles |
---|
EsperarEventosProcesamiento | Devuelve True si "WaitEvents" está en proceso |
(No llame directamente a los métodos AddAsyncSocket
, RemoveAsyncSocket
, NotifyNextReadyForReading
y NotifyNextReadyForWriting
)
Detalles de la clase XClosedReason :
variable estática | Valor |
---|
Error | 0x00 |
Cerrado por el anfitrión | 0x01 |
Cerrado por pares | 0x02 |
Se acabó el tiempo | 0x03 |
Detalles de la clase XAsyncSocket :
Método | Argumentos |
---|
ObtenerAsyncSocketsPool | Ninguno |
ObtenerSocketObj | Ninguno |
Cerca | Ninguno |
Propiedad | Detalles |
---|
ID de enchufe | Obtenga la identificación única del socket abierto |
EnCerrado | Obtener o establecer un evento de tipo f(closedReason) |
Estado | Obtener o establecer un objeto personalizado |
Detalles de la clase XAsyncTCPServer :
Método | Argumentos |
---|
Crear (estático) | asyncSocketsPool , srvAddr (tupla de ip y puerto), srvBacklog=256 (int), bufSlots=None |
Propiedad | Detalles |
---|
Dirección Srv | Tupla de ip y puerto |
OnClientAceptado | Obtener o configurar un evento de tipo f(xAsyncTCPServer, xAsyncTCPClient) |
Detalles de la clase XAsyncTCPClient :
Método | Argumentos |
---|
Crear (estático) | asyncSocketsPool , srvAddr (tupla de ip y puerto), connectTimeout=5 (int), recvBufLen=4096 (int), sendBufLen=4096 (int), connectAsync=True (bool) |
LíneaRecvAsync | lineEncoding='UTF-8' , onLineRecv=None (función), onLineRecvArg=None (objeto) , timeoutSec=None (int) |
AsyncRecvData | size=None (int), onDataRecv=None (función), onDataRecvArg=None (objeto), timeoutSec=None (int) |
Envío asíncrono de datos | data (bytes o protocolo de búfer), onDataSent=None (función), onDataSentArg=None (objeto) |
AsyncSendSendingBuffer | size=None (int), onDataSent=None (función), onDataSentArg=None (objeto) |
IniciarSSL | keyfile=None , certfile=None , server_side=False , cert_reqs=ssl.CERT_NONE , ca_certs=None |
IniciarSSLContext | sslContext , serverSide=False |
-
onLineRecv
es un evento de devolución de llamada de tipo f(xAsyncTCPClient, line, arg) -
onDataRecv
es un evento de devolución de llamada de tipo f(xAsyncTCPClient, data, arg) -
onDataSent
es un evento de devolución de llamada de tipo f(xAsyncTCPClient, arg) -
StartSSL
y StartSSLContext
no funcionan en MicroPython (en modo de sockets asíncronos sin bloqueo) - Se recomienda ampliamente utilizar
StartSSLContext
en lugar de StartSSL
(versión anterior)
Propiedad | Detalles |
---|
Dirección Srv | Tupla de ip y puerto |
CliAddr | Tupla de ip y puerto |
EsSSL | Devuelve True si se utiliza SSL |
Búfer de envío | Obtener el búfer existente (memoryview) utilizado para enviar datos |
Al fallar la conexión | Obtener o configurar un evento de tipo f(xAsyncTCPClient) |
Conectado | Obtener o configurar un evento de tipo f(xAsyncTCPClient) |
Detalles de la clase XAsyncUDPDatagram :
Método | Argumentos |
---|
Crear (estático) | asyncSocketsPool , localAddr=None (tupla de ip y puerto), recvBufLen=4096 (int), broadcast=False (bool) |
AsyncSendDatagrama | datagram (bytes o protocolo de buffer), remoteAddr (tupla de ip y puerto), onDataSent=None (función), onDataSentArg=None (objeto) |
- onDataSent es un evento de devolución de llamada de tipo f(xAsyncUDPDatagram, arg)
Propiedad | Detalles |
---|
Dirección local | Tupla de ip y puerto |
EnRecv | Obtener o configurar un evento de tipo f(xAsyncUDPDatagram, remoteAddr, datagram) |
Al no poder enviar | Obtener o configurar un evento de tipo f(xAsyncUDPDatagram, datagram, remoteAddr) |
Detalles de la clase XBufferSlot :
Método | Argumentos |
---|
Constructor | size (int), keepAlloc=True (bool) |
Propiedad | Detalles |
---|
Disponible | Obtener o establecer la disponibilidad del espacio |
Tamaño | Obtenga el tamaño del búfer de la ranura |
Buffer | Obtener el buffer de la ranura |
Detalles de la clase XBufferSlots :
Método | Argumentos |
---|
Constructor | slotsCount (int), slotsSize (int), keepAlloc=True (bool) |
Obtener ranura disponible | Ninguno |
Propiedad | Detalles |
---|
Número de ranuras | Obtener el número de espacios |
Tamaño de las ranuras | Obtenga el tamaño del búfer de cada ranura |
Tragamonedas | Obtenga la lista de espacios |
Detalles de la clase XFiFo :
Método | Argumentos |
---|
Constructor | Ninguno |
Poner | obj (objeto) |
Conseguir | Ninguno |
Claro | Ninguno |
Propiedad | Detalles |
---|
Vacío | Devuelve True si el FiFo está vacío |
Por JC`zic para HC² ;')
¿Mantenlo simple, estúpido ?