XAsyncSockets هي مكتبة Python/MicroPython فعالة للمقابس غير المتزامنة المُدارة.
من السهل جدًا الدمج وخفيف جدًا بملف واحد فقط:
ميزات XAsyncSockets:
- إدارة المقابس غير المتزامنة في مجموعة (ما يصل إلى الآلاف!)
- يعمل مباشرة مع الإدخال/الإخراج للاستقبال والإرسال بسرعة كبيرة
- يدعم عددًا كبيرًا جدًا من اتصالات TCP المتزامنة
- يدعم عمليات المعالجة المتزامنة المتزامنة إذا لزم الأمر (مترابطة)
- تنفيذ خوادم TCP
- تنفيذ عملاء TCP
- تنفيذ مخططات بيانات UDP (المرسل و/أو المتلقي)
- يمكن لعميل TCP أن يحدث بعد حجم محدد من البيانات أو تلقي سطر نصي
- يمكن لكل اتصالات واستلامات الانتظار خلال فترة زمنية محددة
- يتم إرجاع أسباب إغلاق عميل TCP
- قوية حقًا وسريعة جدًا وسهلة الاستخدام
- متوافق مع تنفيذ MicroPython (طبقة المقابس، قائمة انتظار FiFo، عداد الأداء)
فئات XAsyncSockets :
اسم الفئة | وصف |
---|
XAsyncSocketsPool | مجموعة مُدارة من كائنات "XAsyncSocket". |
XClosedReason | عداد أسباب إغلاق "XAsyncSocket". |
XAsyncSocket | فئة مجردة من مآخذ التوصيل غير المتزامنة المدارة |
XAsyncTCPServer | تنفيذ خادم TCP لـ "XAsyncSocket" |
XAsyncTCPClient | تنفيذ عميل TCP لـ "XAsyncSocket" |
XAsyncUDPDatagram | تطبيق مرسل/مستقبل UDP لـ "XAsyncSocket" |
XBufferSlot | المخزن المؤقت المُدار |
XBufferSlots | جمع المخازن المؤقتة المدارة |
XFiFo | قائمة انتظار FiFo مخصصة |
استثناءات XAsyncSockets :
اسم الفئة | وصف |
---|
XAsyncSocketsPoolException | فئة الاستثناء لـ "XAsyncSocketsPool" |
XAsyncSocketException | فئة الاستثناء لـ "XAsyncSocket" |
XAsyncTCPServerException | فئة الاستثناء لـ "XAsyncTCPServer" |
XAsyncTCPClientException | فئة الاستثناء لـ "XAsyncTCPClient" |
XAsyncUDPDatagramException | فئة الاستثناء لـ "XAsyncUDPDatagram" |
XFiFoException | فئة الاستثناء لـ "XFiFo" |
تفاصيل فئة XAsyncSocketsPool :
طريقة | الحجج |
---|
منشئ | لا أحد |
GetAllAsyncSockets | لا أحد |
GetAsyncSocketByID | id (كثافة العمليات) |
AsyncWaitEvents | threadsCount=0 (كثافة العمليات) |
StopWaitEvents | لا أحد |
ملكية | تفاصيل |
---|
انتظر معالجة الأحداث | يُرجع True إذا كان "WaitEvents" قيد المعالجة |
(لا تستدعي مباشرة الأساليب AddAsyncSocket
و RemoveAsyncSocket
و NotifyNextReadyForReading
و NotifyNextReadyForWriting
)
تفاصيل فئة XClosedReason :
متغير ثابت | قيمة |
---|
خطأ | 0x00 |
مغلق بواسطة المضيف | 0x01 |
مغلق بواسطة Peer | 0x02 |
نفذ الوقت | 0x03 |
تفاصيل فئة XAsyncSocket :
طريقة | الحجج |
---|
GetAsyncSocketsPool | لا أحد |
GetSocketObj | لا أحد |
يغلق | لا أحد |
ملكية | تفاصيل |
---|
معرف المقبس | احصل على المعرف الفريد للمقبس المفتوح |
عندمغلق | الحصول على حدث من النوع f أو تعيينه (ClosedReason) |
ولاية | الحصول على كائن مخصص أو تعيينه |
تفاصيل فئة XAsyncTCPServer :
طريقة | الحجج |
---|
إنشاء (ثابت) | asyncSocketsPool ، srvAddr (مجموعة IP والمنفذ)، srvBacklog=256 (int)، bufSlots=None |
ملكية | تفاصيل |
---|
SrvAddr | مجموعة من IP والميناء |
OnClientAccepted | الحصول على حدث من النوع f(xAsyncTCPServer, xAsyncTCPClient) أو تعيينه |
تفاصيل فئة XAsyncTCPClient :
طريقة | الحجج |
---|
إنشاء (ثابت) | asyncSocketsPool و srvAddr (مجموعة IP والمنفذ)، و connectTimeout=5 (int)، و recvBufLen=4096 (int)، و sendBufLen=4096 (int)، و connectAsync=True (منطقي) |
AsyncRecvLine | lineEncoding='UTF-8' ، onLineRecv=None (وظيفة)، onLineRecvArg=None (object) , timeoutSec=None (int) |
AsyncRecvData | size=None (int)، onDataRecv=None (وظيفة)، onDataRecvArg=None (كائن)، timeoutSec=None (int) |
AsyncSendData | 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 |
StartSSLContext | sslContext , serverSide=False |
-
onLineRecv
هو حدث رد اتصال من النوع f(xAsyncTCPClient, line, arg) -
onDataRecv
هو حدث رد اتصال من النوع f(xAsyncTCPClient, data, arg) -
onDataSent
هو حدث رد اتصال من النوع f(xAsyncTCPClient, arg) - لا يعمل
StartSSL
و StartSSLContext
على MicroPython (في وضع المقابس غير المتزامنة غير المحظورة) - يوصى على نطاق واسع باستخدام
StartSSLContext
بدلاً من StartSSL
(الإصدار القديم)
ملكية | تفاصيل |
---|
SrvAddr | مجموعة من IP والميناء |
كليأدر | مجموعة من IP والميناء |
IsSSL | يُرجع True إذا تم استخدام SSL |
SendingBuffer | احصل على المخزن المؤقت الموجود (عرض الذاكرة) المستخدم لإرسال البيانات |
OnFailsToConnect | الحصول على حدث من النوع f(xAsyncTCPClient) أو تعيينه |
على متصل | الحصول على حدث من النوع f(xAsyncTCPClient) أو تعيينه |
تفاصيل فئة XAsyncUDPDatagram :
طريقة | الحجج |
---|
إنشاء (ثابت) | asyncSocketsPool , localAddr=None (مجموعة IP والمنفذ) و recvBufLen=4096 (int) و broadcast=False (bool) |
AsyncSendDatagram | datagram (البايت أو بروتوكول المخزن المؤقت)، remoteAddr (مجموعة IP والمنفذ)، onDataSent=None (وظيفة)، onDataSentArg=None (كائن) |
- onDataSent هو حدث رد اتصال من النوع f(xAsyncUDPDatagram, arg)
ملكية | تفاصيل |
---|
عنوان محلي | مجموعة من IP والميناء |
OnRecv | الحصول على حدث من النوع f(xAsyncUDPDatagram, RemoteAddr, datagram) أو تعيينه |
OnFailsToSend | الحصول على حدث من النوع f(xAsyncUDPDatagram, datagram, RemoteAddr) أو تعيينه |
تفاصيل فئة XBufferSlot :
طريقة | الحجج |
---|
منشئ | size (كثافة العمليات)، keepAlloc=True (منطقي) |
ملكية | تفاصيل |
---|
متاح | احصل على أو قم بتعيين مدى توفر الفتحة |
مقاس | احصل على حجم المخزن المؤقت للفتحة |
المخزن المؤقت | الحصول على المخزن المؤقت للفتحة |
تفاصيل فئة XBufferSlots :
طريقة | الحجج |
---|
منشئ | slotsCount (int)، slotsSize (كثافة العمليات)، keepAlloc=True (منطقي) |
GetAvailableSlot | لا أحد |
ملكية | تفاصيل |
---|
SlotsCount | احصل على عدد الفتحات |
حجم الفتحات | احصل على حجم المخزن المؤقت لكل فتحات |
فتحات | احصل على قائمة الفتحات |
تفاصيل فئة XFiFo :
طريقة | الحجج |
---|
منشئ | لا أحد |
يضع | obj (كائن) |
يحصل | لا أحد |
واضح | لا أحد |
ملكية | تفاصيل |
---|
فارغ | يُرجع True إذا كان FiFo فارغًا |
بواسطة JC`zic لـ HC² ;')
يبقيه بسيط، غبي ؟