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² ;')
يبقيه بسيط، غبي ؟