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 ?