XAsyncSockets — это эффективная библиотека управляемых асинхронных сокетов Python/MicroPython.
Очень легко интегрировать и очень легко использовать только один файл:
Возможности XAsyncSockets:
- Управляемые асинхронные сокеты в пуле (до тысяч!)
- Работает напрямую с вводом-выводом для очень быстрого приема и отправки.
- Поддерживает очень большое количество одновременных TCP-соединений.
- При необходимости поддерживает параллельные синхронные операции обработки (поточные)
- Реализация TCP-серверов
- Реализация TCP-клиентов
- Реализация дейтаграмм UDP (отправитель и/или получатель)
- TCP-клиент может создавать события после получения определенного размера данных или текстовой строки.
- Каждое соединение и прием могут ожидать в течение определенного времени.
- Возвращаются причины закрытия TCP-клиентов.
- Действительно надежный, очень быстрый и простой в использовании
- Совместимость с реализацией MicroPython (уровень сокетов, очередь FiFo, счетчик производительности)
Классы XAsyncSockets :
Имя класса | Описание |
---|
XAsyncSocketsPool | Управляемый пул объектов XAsyncSocket. |
XClosedReason | Перечислитель причин закрытия XAsyncSocket |
XAsyncSocket | Абстрактный класс управляемых асинхронных сокетов |
XAsyncTCPServer | Реализация TCP-сервера «XAsyncSocket» |
XAsyncTCPClient | TCP-клиентская реализация XAsyncSocket |
XAsyncUDPдатаграмма | Реализация UDP-отправителя/получателя XAsyncSocket |
XBufferSlot | Управляемый буфер |
XBufferSlots | Коллекция управляемых буферов |
XFiFo | Выделенная очередь FiFo |
Исключения XAsyncSockets :
Имя класса | Описание |
---|
XAsyncSocketsPoolException | Класс исключения для «XAsyncSocketsPool» |
XAsyncSocketException | Класс исключения для «XAsyncSocket» |
XAsyncTCPServerException | Класс исключения для «XAsyncTCPServer» |
XAsyncTCPClientException | Класс исключения для «XAsyncTCPClient» |
XAsyncUDPDatagramException | Класс исключения для «XAsyncUDPDatagram» |
XFiFoException | Класс исключения для «XFiFo» |
Подробности класса XAsyncSocketsPool :
Метод | Аргументы |
---|
Конструктор | Никто |
GetAllAsyncSockets | Никто |
GetAsyncSocketByID | id (целое) |
Асинхронное ожидание событий | threadsCount=0 (целое) |
StopWaitEvents | Никто |
Свойство | Подробности |
---|
Обработка ожидания событий | Возвращайте True , если «WaitEvents» находится в обработке. |
(Не вызывайте напрямую методы AddAsyncSocket
, RemoveAsyncSocket
, NotifyNextReadyForReading
и NotifyNextReadyForWriting
)
Детали класса XClosedReason :
Статическая переменная | Ценить |
---|
Ошибка | 0x00 |
ЗакрытоПоХосту | 0x01 |
ClosedByPeer | 0x02 |
Тайм-аут | 0x03 |
Подробности класса XAsyncSocket :
Метод | Аргументы |
---|
GetAsyncSocketsPool | Никто |
GetSocketObj | Никто |
Закрывать | Никто |
Свойство | Подробности |
---|
идентификатор сокета | Получить уникальный идентификатор открытого сокета |
OnClosed | Получить или установить событие типа f(closedReason) |
Состояние | Получить или установить пользовательский объект |
Подробности класса XAsyncTCPServer :
Метод | Аргументы |
---|
Создать (статический) | asyncSocketsPool , srvAddr (кортеж IP-адреса и порта), srvBacklog=256 (int), bufSlots=None |
Свойство | Подробности |
---|
СрвАддр | Кортеж IP и порта |
Онклиентакцептед | Получить или установить событие типа f(xAsyncTCPServer, xAsyncTCPClient) |
Подробности класса XAsyncTCPClient :
Метод | Аргументы |
---|
Создать (статический) | asyncSocketsPool , srvAddr (кортеж IP-адреса и порта), connectTimeout=5 (целое), recvBufLen=4096 (целое), sendBufLen=4096 (целое), connectAsync=True (Bool) |
Асинреквлине | lineEncoding='UTF-8' , onLineRecv=None (функция), onLineRecvArg=None (объект) , timeoutSec=None (int) |
Асинреквдата | size=None (int), onDataRecv=None (функция), onDataRecvArg=None (объект), timeoutSec=None (int) |
Асинксенддата | data (байты или протокол буфера), onDataSent=None (функция), onDataSentArg=None (объект) |
AsyncSendSendingBuffer | size=None (int), onDataSent=None (функция), onDataSentArg=None (объект) |
СтартSSL | keyfile=None , certfile=None , server_side=False , cert_reqs=ssl.CERT_NONE , ca_certs=None |
СтартSSLКонтекст | sslContext , serverSide=False |
-
onLineRecv
— это событие обратного вызова типа f(xAsyncTCPClient, line, arg) -
onDataRecv
— это событие обратного вызова типа f(xAsyncTCPClient, data, arg) -
onDataSent
— это событие обратного вызова типа f(xAsyncTCPClient, arg) -
StartSSL
и StartSSLContext
не работают на MicroPython (в режиме асинхронных неблокирующих сокетов) - Широко рекомендуется использовать
StartSSLContext
вместо StartSSL
(старая версия).
Свойство | Подробности |
---|
СрвАддр | Кортеж IP и порта |
Клиаддр | Кортеж IP и порта |
IsSSL | Верните True если используется SSL |
Отправкабуфера | Получите существующий буфер (memoryview), используемый для отправки данных. |
Онфаилстоконнект | Получить или установить событие типа f(xAsyncTCPClient) |
OnConnected | Получить или установить событие типа f(xAsyncTCPClient) |
Подробности класса XAsyncUDPDatagram :
Метод | Аргументы |
---|
Создать (статический) | asyncSocketsPool , localAddr=None (кортеж IP-адреса и порта), recvBufLen=4096 (int), broadcast=False (bool) |
Асинксенддатаграмма | datagram (байты или протокол буфера), remoteAddr (кортеж IP и порта), onDataSent=None (функция), onDataSentArg=None (объект) |
- onDataSent — это событие обратного вызова типа f(xAsyncUDPDatagram, arg)
Свойство | Подробности |
---|
ЛокальныйАддр | Кортеж IP и порта |
OnRecv | Получить или установить событие типа f(xAsyncUDPDatagram, RemoteAddr, Datagram) |
Онфаилстосенд | Получить или установить событие типа f(xAsyncUDPDatagram, datagram, RemoteAddr) |
Детали класса XBufferSlot :
Метод | Аргументы |
---|
Конструктор | size (int), keepAlloc=True (bool) |
Свойство | Подробности |
---|
Доступный | Получить или установить доступность слота |
Размер | Получить размер буфера слота |
Буфер | Получить буфер слота |
Детали класса XBufferSlots :
Метод | Аргументы |
---|
Конструктор | slotsCount (int), slotsSize (int), keepAlloc=True (bool) |
Получить доступный слот | Никто |
Свойство | Подробности |
---|
СлотыКоличество | Получить количество слотов |
СлотыРазмер | Получить размер буфера каждого слота |
Слоты | Получить список слотов |
Детали класса XFiFo :
Метод | Аргументы |
---|
Конструктор | Никто |
Помещать | obj (объект) |
Получать | Никто |
Прозрачный | Никто |
Свойство | Подробности |
---|
Пустой | Верните True если FiFo пуст. |
Автор JC`zic для HC² ;')
Будь проще, глупый ?