XAsyncSockets ist eine effiziente Python/MicroPython-Bibliothek verwalteter asynchroner Sockets.

Sehr einfach zu integrieren und sehr leicht mit nur einer Datei:
XAsyncSockets-Funktionen:
- Verwaltete asynchrone Sockets in einem Pool (bis zu Tausende!)
- Arbeitet direkt mit I/O zusammen, um sehr schnell zu empfangen und zu senden
- Unterstützt eine sehr große Anzahl gleichzeitiger TCP-Verbindungen
- Unterstützt bei Bedarf gleichzeitige synchrone Verarbeitungsvorgänge (Threaded)
- Implementierung von TCP-Servern
- Implementierung von TCP-Clients
- Implementierung von UDP-Datagrammen (Sender und/oder Empfänger)
- Der TCP-Client kann nach einer bestimmten Datenmenge oder einer empfangenen Textzeile ein Ereignis auslösen
- Jede Verbindung und jeder Empfang kann während einer bestimmten Zeit warten
- Die Gründe für TCP-Client-Schließungen werden zurückgegeben
- Wirklich robust, sehr schnell und einfach zu bedienen
- Kompatibel mit der MicroPython-Implementierung (Sockets-Layer, FiFo-Warteschlange, Perf-Counter)

XAsyncSockets -Klassen:
| Klassenname | Beschreibung |
|---|
| XAsyncSocketsPool | Verwalteter Pool von „XAsyncSocket“-Objekten |
| XClosedReason | Enumerator der „XAsyncSocket“-Schließungsgründe |
| XAsyncSocket | Abstrakte Klasse verwalteter asynchroner Sockets |
| XAsyncTCPServer | TCP-Server-Implementierung von „XAsyncSocket“ |
| XAsyncTCPClient | TCP-Client-Implementierung von „XAsyncSocket“ |
| XAsyncUDPDatagram | UDP-Sender/Empfänger-Implementierung von „XAsyncSocket“ |
| XBufferSlot | Verwalteter Puffer |
| XBufferSlots | Sammlung verwalteter Puffer |
| XFiFo | Dedizierte FiFo-Warteschlange |
XAsyncSockets- Ausnahmen:
| Klassenname | Beschreibung |
|---|
| XAsyncSocketsPoolException | Ausnahmeklasse für „XAsyncSocketsPool“ |
| XAsyncSocketException | Ausnahmeklasse für „XAsyncSocket“ |
| XAsyncTCPServerException | Ausnahmeklasse für „XAsyncTCPServer“ |
| XAsyncTCPClientException | Ausnahmeklasse für „XAsyncTCPClient“ |
| XAsyncUDPDatagramException | Ausnahmeklasse für „XAsyncUDPDatagram“ |
| XFiFoException | Ausnahmeklasse für 'XFiFo' |
Details zur XAsyncSocketsPool -Klasse:
| Verfahren | Argumente |
|---|
| Konstrukteur | Keiner |
| GetAllAsyncSockets | Keiner |
| GetAsyncSocketByID | id (int) |
| AsyncWaitEvents | threadsCount=0 (int) |
| StopWaitEvents | Keiner |
| Eigentum | Einzelheiten |
|---|
| WaitEventsProcessing | Gibt True zurück, wenn „WaitEvents“ verarbeitet wird |
(Rufen Sie die Methoden AddAsyncSocket , RemoveAsyncSocket , NotifyNextReadyForReading und NotifyNextReadyForWriting nicht direkt auf.)
Details zur XClosedReason- Klasse:
| Statische Variable | Wert |
|---|
| Fehler | 0x00 |
| GeschlossenByHost | 0x01 |
| GeschlossenByPeer | 0x02 |
| Time-out | 0x03 |
Details zur XAsyncSocket -Klasse:
| Verfahren | Argumente |
|---|
| GetAsyncSocketsPool | Keiner |
| GetSocketObj | Keiner |
| Schließen | Keiner |
| Eigentum | Einzelheiten |
|---|
| SocketID | Rufen Sie die eindeutige ID des geöffneten Sockets ab |
| AmGeschlossen | Ein Ereignis vom Typ f(closedReason) abrufen oder festlegen |
| Zustand | Rufen Sie ein benutzerdefiniertes Objekt ab oder legen Sie es fest |
Details zur XAsyncTCPServer -Klasse:
| Verfahren | Argumente |
|---|
| Erstellen (statisch) | asyncSocketsPool , srvAddr (Tupel aus IP und Port), srvBacklog=256 (int), bufSlots=None |
| Eigentum | Einzelheiten |
|---|
| SrvAddr | Tupel aus IP und Port |
| OnClientAccepted | Ein Ereignis vom Typ f(xAsyncTCPServer, xAsyncTCPClient) abrufen oder festlegen |
Details zur XAsyncTCPClient -Klasse:
| Verfahren | Argumente |
|---|
| Erstellen (statisch) | asyncSocketsPool , srvAddr (Tupel aus IP und Port), connectTimeout=5 (int), recvBufLen=4096 (int), sendBufLen=4096 (int), connectAsync=True (bool) |
| AsyncRecvLine | lineEncoding='UTF-8' , onLineRecv=None (Funktion), onLineRecvArg=None (Objekt) , timeoutSec=None (int) |
| AsyncRecvData | size=None (int), onDataRecv=None (Funktion), onDataRecvArg=None (Objekt), timeoutSec=None (int) |
| AsyncSendData | data (Bytes oder Pufferprotokoll), onDataSent=None (Funktion), onDataSentArg=None (Objekt) |
| AsyncSendSendingBuffer | size=None (int), onDataSent=None (Funktion), onDataSentArg=None (Objekt) |
| Starten SieSSL | keyfile=None , certfile=None , server_side=False , cert_reqs=ssl.CERT_NONE , ca_certs=None |
| StartSSLContext | sslContext , serverSide=False |
-
onLineRecv ist ein Rückrufereignis vom Typ f(xAsyncTCPClient, line, arg) -
onDataRecv ist ein Rückrufereignis vom Typ f(xAsyncTCPClient, data, arg) -
onDataSent ist ein Rückrufereignis vom Typ f(xAsyncTCPClient, arg) -
StartSSL und StartSSLContext funktionieren nicht auf MicroPython (im asynchronen, nicht blockierenden Sockets-Modus) - Es wird allgemein empfohlen,
StartSSLContext anstelle von StartSSL (alte Version) zu verwenden.
| Eigentum | Einzelheiten |
|---|
| SrvAddr | Tupel aus IP und Port |
| KliAddr | Tupel aus IP und Port |
| IsSSL | Gibt True zurück, wenn SSL verwendet wird |
| Sendepuffer | Rufen Sie den vorhandenen Puffer (Speicheransicht) ab, der zum Senden von Daten verwendet wird |
| OnFailsToConnect | Ein Ereignis vom Typ f(xAsyncTCPClient) abrufen oder festlegen |
| OnConnected | Ein Ereignis vom Typ f(xAsyncTCPClient) abrufen oder festlegen |
Details zur XAsyncUDPDatagram -Klasse:
| Verfahren | Argumente |
|---|
| Erstellen (statisch) | asyncSocketsPool , localAddr=None (Tupel aus IP und Port), recvBufLen=4096 (int), broadcast=False (bool) |
| AsyncSendDatagram | datagram (Bytes oder Pufferprotokoll), remoteAddr (Tupel aus IP und Port), onDataSent=None (Funktion), onDataSentArg=None (Objekt) |
- onDataSent ist ein Rückrufereignis vom Typ f(xAsyncUDPDatagram, arg)
| Eigentum | Einzelheiten |
|---|
| LocalAddr | Tupel aus IP und Port |
| OnRecv | Ein Ereignis vom Typ f(xAsyncUDPDatagram, remoteAddr, datagram) abrufen oder festlegen |
| OnFailsToSend | Ein Ereignis vom Typ f(xAsyncUDPDatagram, datagram, remoteAddr) abrufen oder festlegen |
Details zur XBufferSlot -Klasse:
| Verfahren | Argumente |
|---|
| Konstrukteur | size (int), keepAlloc=True (bool) |
| Eigentum | Einzelheiten |
|---|
| Verfügbar | Rufen Sie die Verfügbarkeit des Slots ab oder legen Sie sie fest |
| Größe | Ermitteln Sie die Puffergröße des Steckplatzes |
| Puffer | Holen Sie sich den Puffer des Steckplatzes |
Details zur XBufferSlots -Klasse:
| Verfahren | Argumente |
|---|
| Konstrukteur | slotsCount (int), slotsSize (int), keepAlloc=True (bool) |
| GetAvailableSlot | Keiner |
| Eigentum | Einzelheiten |
|---|
| SlotsCount | Ermitteln Sie die Anzahl der Slots |
| SlotsSize | Ermitteln Sie die Puffergröße jedes Slots |
| Spielautomaten | Holen Sie sich die Liste der Slots |
Details zur XFiFo -Klasse:
| Verfahren | Argumente |
|---|
| Konstrukteur | Keiner |
| Setzen | obj (Objekt) |
| Erhalten | Keiner |
| Klar | Keiner |
| Eigentum | Einzelheiten |
|---|
| Leer | Gibt True zurück, wenn das FiFo leer ist |
Von JC`zic für HC² ;')
Halte es einfach, Dummkopf ?