XAsyncSockets est une bibliothèque Python/MicroPython efficace de sockets asynchrones gérés.

Très simple à intégrer et très léger avec un seul fichier :
Fonctionnalités de XAsyncSockets :
- Sockets asynchrones gérés dans un pool (jusqu'à des milliers !)
- Fonctionne directement avec les E/S pour recevoir et envoyer très rapidement
- Prend en charge un très grand nombre de connexions TCP simultanées
- Prend en charge les opérations de traitement synchrones simultanées si nécessaire (thread)
- Implémentation de serveurs TCP
- Implémentation de clients TCP
- Implémentation de datagrammes UDP (émetteur et/ou récepteur)
- Le client TCP peut déclencher un événement après la réception d'une taille de données spécifiée ou d'une ligne de texte.
- Chaque connexion et réception peut attendre pendant une durée déterminée
- Les raisons des fermetures des clients TCP sont renvoyées
- Vraiment robuste, très rapide et facile à utiliser
- Compatible avec l'implémentation MicroPython (couche sockets, file d'attente FiFo, compteur de performances)

Classes XAsyncSockets :
| Nom de la classe | Description |
|---|
| Pool XAsyncSockets | Pool géré d'objets 'XAsyncSocket' |
| XFerméRaison | Énumérateur des raisons de fermeture de « XAsyncSocket » |
| XAsyncSocket | Classe abstraite de sockets asynchrones gérés |
| XAsyncTCPServer | Implémentation du serveur TCP de 'XAsyncSocket' |
| XAsyncTCPClient | Implémentation client TCP de 'XAsyncSocket' |
| XAsyncUDPDatagram | Implémentation de l'expéditeur/récepteur UDP de 'XAsyncSocket' |
| XBufferSlot | Tampon géré |
| XBufferSlots | Collection de tampons gérés |
| XFiFo | File d'attente FiFo dédiée |
Exceptions XAsyncSockets :
| Nom de la classe | Description |
|---|
| XAsyncSocketsPoolException | Classe d'exception pour 'XAsyncSocketsPool' |
| XAsyncSocketException | Classe d'exception pour 'XAsyncSocket' |
| XAsyncTCPServerException | Classe d'exception pour 'XAsyncTCPServer' |
| XAsyncTCPClientException | Classe d'exception pour 'XAsyncTCPClient' |
| XAsyncUDPDatagramException | Classe d'exception pour 'XAsyncUDPDatagram' |
| XFiFoException | Classe d'exception pour 'XFiFo' |
Détails de la classe XAsyncSocketsPool :
| Méthode | Arguments |
|---|
| Constructeur | Aucun |
| GetAllAsyncSockets | Aucun |
| GetAsyncSocketByID | id (int) |
| AsyncWaitEvents | threadsCount=0 (entier) |
| StopWaitEvents | Aucun |
| Propriété | Détails |
|---|
| Traitement des événements d'attente | Renvoie True si "WaitEvents" est en cours de traitement |
(N'appelez pas directement les méthodes AddAsyncSocket , RemoveAsyncSocket , NotifyNextReadyForReading et NotifyNextReadyForWriting )
Détails de la classe XClosedReason :
| Variable statique | Valeur |
|---|
| Erreur | 0x00 |
| FerméParHôte | 0x01 |
| FerméParPeer | 0x02 |
| Temps mort | 0x03 |
Détails de la classe XAsyncSocket :
| Méthode | Arguments |
|---|
| GetAsyncSocketsPool | Aucun |
| GetSocketObj | Aucun |
| Fermer | Aucun |
| Propriété | Détails |
|---|
| ID de socket | Obtenez l'ID unique du socket ouvert |
| Fermé | Obtenez ou définissez un événement de type f(closedReason) |
| État | Obtenir ou définir un objet personnalisé |
Détails de la classe XAsyncTCPServer :
| Méthode | Arguments |
|---|
| Créer (statique) | asyncSocketsPool , srvAddr (tuple d'adresse IP et de port), srvBacklog=256 (int), bufSlots=None |
| Propriété | Détails |
|---|
| AdresseSrv | Tuple d'adresse IP et de port |
| SurClientAccepté | Obtenez ou définissez un événement de type f(xAsyncTCPServer, xAsyncTCPClient) |
Détails de la classe XAsyncTCPClient :
| Méthode | Arguments |
|---|
| Créer (statique) | asyncSocketsPool , srvAddr (tuple d'adresse IP et de port), connectTimeout=5 (int), recvBufLen=4096 (int), sendBufLen=4096 (int), connectAsync=True (bool) |
| AsyncRecvLine | lineEncoding='UTF-8' , onLineRecv=None (fonction), onLineRecvArg=None (objet) , timeoutSec=None (int) |
| AsyncRecvData | size=None (int), onDataRecv=None (fonction), onDataRecvArg=None (objet), timeoutSec=None (int) |
| AsyncSendData | data (octets ou protocole tampon), onDataSent=None (fonction), onDataSentArg=None (objet) |
| AsyncSendSendingBuffer | size=None (int), onDataSent=None (fonction), onDataSentArg=None (objet) |
| DémarrerSSL | keyfile=None , certfile=None , server_side=False , cert_reqs=ssl.CERT_NONE , ca_certs=None |
| DémarrerSSLContext | sslContext , serverSide=False |
-
onLineRecv est un événement de rappel de type f(xAsyncTCPClient, line, arg) -
onDataRecv est un événement de rappel de type f(xAsyncTCPClient, data, arg) -
onDataSent est un événement de rappel de type f(xAsyncTCPClient, arg) -
StartSSL et StartSSLContext ne fonctionnent pas sur MicroPython (en mode sockets asynchrones non bloquants) - Il est largement recommandé d'utiliser
StartSSLContext plutôt que StartSSL (ancienne version)
| Propriété | Détails |
|---|
| AdresseSrv | Tuple d'adresse IP et de port |
| AdresseCli | Tuple d'adresse IP et de port |
| EstSSL | Renvoie True si SSL est utilisé |
| Tampon d'envoi | Récupère le tampon existant (memoryview) utilisé pour envoyer des données |
| OnFailsToConnect | Obtenez ou définissez un événement de type f(xAsyncTCPClient) |
| SurConnecté | Obtenez ou définissez un événement de type f(xAsyncTCPClient) |
Détails de la classe XAsyncUDPDatagram :
| Méthode | Arguments |
|---|
| Créer (statique) | asyncSocketsPool , localAddr=None (tuple d'adresse IP et de port), recvBufLen=4096 (int), broadcast=False (bool) |
| AsyncSendDatagram | datagram (octets ou protocole tampon), remoteAddr (tuple d'adresse IP et de port), onDataSent=None (fonction), onDataSentArg=None (objet) |
- onDataSent est un événement de rappel de type f(xAsyncUDPDatagram, arg)
| Propriété | Détails |
|---|
| Adresse Locale | Tuple d'adresse IP et de port |
| SurRecv | Obtenez ou définissez un événement de type f(xAsyncUDPDatagram, remoteAddr, datagram) |
| OnFailsToSend | Obtenez ou définissez un événement de type f(xAsyncUDPDatagram, datagram, remoteAddr) |
Détails de la classe XBufferSlot :
| Méthode | Arguments |
|---|
| Constructeur | size (int), keepAlloc=True (bool) |
| Propriété | Détails |
|---|
| Disponible | Obtenir ou définir la disponibilité du créneau |
| Taille | Obtenez la taille du tampon du slot |
| Tampon | Récupérer le buffer du slot |
Détails de la classe XBufferSlots :
| Méthode | Arguments |
|---|
| Constructeur | slotsCount (int), slotsSize (int), keepAlloc=True (bool) |
| GetAvailableSlot | Aucun |
| Propriété | Détails |
|---|
| Nombre d'emplacements | Obtenez le nombre d'emplacements |
| Taille des emplacements | Obtenez la taille du tampon de chaque emplacement |
| Machines à sous | Obtenir la liste des créneaux |
Détails de la classe XFiFo :
| Méthode | Arguments |
|---|
| Constructeur | Aucun |
| Mettre | obj (objet) |
| Obtenir | Aucun |
| Clair | Aucun |
| Propriété | Détails |
|---|
| Vide | Renvoie True si le FiFo est vide |
Par JC`zic pour HC² ;')
Rester simple, stupide ?