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 ?