XAsyncSockets é uma biblioteca Python/MicroPython eficiente de soquetes assíncronos gerenciados.

Muito fácil de integrar e muito leve com apenas um arquivo:
Recursos do XAsyncSockets:
- Soquetes assíncronos gerenciados em um pool (até milhares!)
- Funciona diretamente com I/O para receber e enviar muito rapidamente
- Suporta um grande número de conexões TCP simultâneas
- Suporta operações de processamento síncrono simultâneo, se necessário (threaded)
- Implementação de servidores TCP
- Implementação de clientes TCP
- Implementação de datagramas UDP (remetente e/ou receptor)
- O cliente TCP pode ocorrer após um tamanho especificado de dados ou uma linha de texto recebida
- Cada conexão e recebimento pode esperar durante um tempo especificado
- Os motivos dos fechamentos do cliente TCP são retornados
- Realmente robusto, muito rápido e fácil de usar
- Compatível com implementação MicroPython (camada de soquetes, fila FiFo, contador de desempenho)

Classes XAsyncSockets :
| Nome da classe | Descrição |
|---|
| XAsyncSocketsPool | Conjunto gerenciado de objetos 'XAsyncSocket' |
| XClosedRazão | Enumerador de motivos de fechamento de 'XAsyncSocket' |
| XAsyncSocket | Classe abstrata de soquetes assíncronos gerenciados |
| XAsyncTCPServer | Implementação do servidor TCP de 'XAsyncSocket' |
| XAsyncTCPClient | Implementação do cliente TCP de 'XAsyncSocket' |
| XAsyncUDPDatagrama | Implementação do remetente/receptor UDP de 'XAsyncSocket' |
| XBufferSlot | Buffer gerenciado |
| XBufferSlots | Coleta de buffers gerenciados |
| XFiFo | Fila FiFo dedicada |
Exceções XAsyncSockets :
| Nome da classe | Descrição |
|---|
| XAsyncSocketsPoolException | Classe de exceção para 'XAsyncSocketsPool' |
| XAsyncSocketException | Classe de exceção para 'XAsyncSocket' |
| XAsyncTCPServerException | Classe de exceção para 'XAsyncTCPServer' |
| XAsyncTCPClientException | Classe de exceção para 'XAsyncTCPClient' |
| XAsyncUDPDatagramException | Classe de exceção para 'XAsyncUDPDatagram' |
| XFiFoException | Classe de exceção para 'XFiFo' |
Detalhes da classe XAsyncSocketsPool :
| Método | Argumentos |
|---|
| Construtor | Nenhum |
| GetAllAsyncSockets | Nenhum |
| GetAsyncSocketByID | id (int) |
| AsyncWaitEvents | threadsCount=0 (int) |
| StopWaitEvents | Nenhum |
| Propriedade | Detalhes |
|---|
| WaitEventsProcessing | Retorna True se "WaitEvents" estiver em processamento |
(Não chame diretamente os métodos AddAsyncSocket , RemoveAsyncSocket , NotifyNextReadyForReading e NotifyNextReadyForWriting )
Detalhes da classe XClosedReason :
| Variável estática | Valor |
|---|
| Erro | 0x00 |
| FechadoByHost | 0x01 |
| FechadoByPeer | 0x02 |
| Tempo esgotado | 0x03 |
Detalhes da classe XAsyncSocket :
| Método | Argumentos |
|---|
| GetAsyncSocketsPool | Nenhum |
| GetSocketObj | Nenhum |
| Fechar | Nenhum |
| Propriedade | Detalhes |
|---|
| ID do soquete | Obtenha o ID exclusivo do soquete aberto |
| Fechado | Obtenha ou defina um evento do tipo f(closedReason) |
| Estado | Obtenha ou defina um objeto personalizado |
Detalhes da classe XAsyncTCPServer :
| Método | Argumentos |
|---|
| Criar (estático) | asyncSocketsPool , srvAddr (tupla de ip e porta), srvBacklog=256 (int), bufSlots=None |
| Propriedade | Detalhes |
|---|
| SrvAddr | Tupla de ip e porta |
| OnClientAccepted | Obtenha ou defina um evento do tipo f(xAsyncTCPServer, xAsyncTCPClient) |
Detalhes da classe XAsyncTCPClient :
| Método | Argumentos |
|---|
| Criar (estático) | asyncSocketsPool , srvAddr (tupla de ip e porta), connectTimeout=5 (int), recvBufLen=4096 (int), sendBufLen=4096 (int), connectAsync=True (bool) |
| AsyncRecvLine | lineEncoding='UTF-8' , onLineRecv=None (função), onLineRecvArg=None (objeto) , timeoutSec=None (int) |
| AsyncRecvData | size=None (int), onDataRecv=None (função), onDataRecvArg=None (objeto), timeoutSec=None (int) |
| AsyncSendData | data (bytes ou protocolo de buffer), onDataSent=None (função), onDataSentArg=None (objeto) |
| AsyncSendSendingBuffer | size=None (int), onDataSent=None (função), onDataSentArg=None (objeto) |
| IniciarSSL | keyfile=None , certfile=None , server_side=False , cert_reqs=ssl.CERT_NONE , ca_certs=None |
| IniciarSSLContexto | sslContext , serverSide=False |
-
onLineRecv é um evento de retorno de chamada do tipo f(xAsyncTCPClient, line, arg) -
onDataRecv é um evento de retorno de chamada do tipo f(xAsyncTCPClient, data, arg) -
onDataSent é um evento de retorno de chamada do tipo f(xAsyncTCPClient, arg) -
StartSSL e StartSSLContext não funcionam no MicroPython (no modo de soquetes assíncronos sem bloqueio) - É amplamente recomendado usar
StartSSLContext em vez de StartSSL (versão antiga)
| Propriedade | Detalhes |
|---|
| SrvAddr | Tupla de ip e porta |
| CliAddr | Tupla de ip e porta |
| ÉSSL | Retorna True se SSL for usado |
| EnviandoBuffer | Obtenha o buffer existente (memoryview) usado para enviar dados |
| OnFailsToConnect | Obtenha ou defina um evento do tipo f(xAsyncTCPClient) |
| Conectado | Obtenha ou defina um evento do tipo f(xAsyncTCPClient) |
Detalhes da classe XAsyncUDPDatagram :
| Método | Argumentos |
|---|
| Criar (estático) | asyncSocketsPool , localAddr=None (tupla de ip e porta), recvBufLen=4096 (int), broadcast=False (bool) |
| AsyncSendDatagram | datagram (bytes ou protocolo de buffer), remoteAddr (tupla de ip e porta), onDataSent=None (função), onDataSentArg=None (objeto) |
- onDataSent é um evento de retorno de chamada do tipo f(xAsyncUDPDatagram, arg)
| Propriedade | Detalhes |
|---|
| Endereço Local | Tupla de ip e porta |
| EmRecv | Obtenha ou defina um evento do tipo f(xAsyncUDPDatagram, remoteAddr, datagram) |
| OnFailsToSend | Obtenha ou defina um evento do tipo f(xAsyncUDPDatagram, datagram, remoteAddr) |
Detalhes da classe XBufferSlot :
| Método | Argumentos |
|---|
| Construtor | size (int), keepAlloc=True (bool) |
| Propriedade | Detalhes |
|---|
| Disponível | Obtenha ou defina a disponibilidade do slot |
| Tamanho | Obtenha o tamanho do buffer do slot |
| Tampão | Obtenha o buffer do slot |
Detalhes da classe XBufferSlots :
| Método | Argumentos |
|---|
| Construtor | slotsCount (int), slotsSize (int), keepAlloc=True (bool) |
| ObterSlotDisponível | Nenhum |
| Propriedade | Detalhes |
|---|
| Contagem de slots | Obtenha o número de slots |
| Tamanho dos Slots | Obtenha o tamanho do buffer de cada slot |
| Caça-níqueis | Obtenha a lista de slots |
Detalhes da classe XFiFo :
| Método | Argumentos |
|---|
| Construtor | Nenhum |
| Colocar | obj (objeto) |
| Pegar | Nenhum |
| Claro | Nenhum |
| Propriedade | Detalhes |
|---|
| Vazio | Retorna True se o FiFo estiver vazio |
Por JC`zic para HC² ;')
Mantenha as coisas simples, estúpido ?