XAsyncSockets เป็นไลบรารี Python/MicroPython ที่มีประสิทธิภาพของซ็อกเก็ตอะซิงโครนัสที่ได้รับการจัดการ

รวมง่ายมากและเบามากด้วยไฟล์เดียวเท่านั้น:
คุณสมบัติ XAsyncSockets:
- จัดการซ็อกเก็ตแบบอะซิงโครนัสในพูล (มากถึงหลายพัน!)
- ทำงานโดยตรงกับ I/O เพื่อรับและส่งอย่างรวดเร็ว
- รองรับการเชื่อมต่อ TCP พร้อมกันจำนวนมาก
- รองรับการดำเนินการประมวลผลแบบซิงโครนัสพร้อมกันหากจำเป็น (แบบเธรด)
- การใช้งานเซิร์ฟเวอร์ TCP
- การใช้งานไคลเอ็นต์ TCP
- การใช้งานดาตาแกรม UDP (ผู้ส่งและ/หรือผู้รับ)
- ไคลเอนต์ TCP สามารถเหตุการณ์หลังจากขนาดข้อมูลที่ระบุหรือบรรทัดข้อความที่ได้รับ
- การเชื่อมต่อและรับแต่ละรายการสามารถรอในช่วงเวลาที่กำหนดได้
- เหตุผลของการปิดไคลเอ็นต์ TCP จะถูกส่งกลับ
- แข็งแกร่งมาก รวดเร็วและใช้งานง่ายมาก
- เข้ากันได้กับการใช้งาน MicroPython (เลเยอร์ซ็อกเก็ต, คิว FiFo, ตัวนับที่สมบูรณ์แบบ)

คลาส XAsyncSockets :
| ชื่อชั้นเรียน | คำอธิบาย |
|---|
| XAsyncSocketsPool | พูลที่ได้รับการจัดการของวัตถุ 'XAsyncSocket' |
| XClosedเหตุผล | ตัวแจงนับเหตุผลในการปิด '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 :
| วิธี | ข้อโต้แย้ง |
|---|
| ตัวสร้าง | ไม่มี |
| รับ AllAsyncSockets | ไม่มี |
| รับAsyncSocketByID | id (int) |
| เหตุการณ์ AsyncWait | threadsCount=0 (int) |
| เหตุการณ์หยุดรอ | ไม่มี |
| คุณสมบัติ | รายละเอียด |
|---|
| รอการประมวลผลเหตุการณ์ | ให้คืนค่า True ถ้า "WaitEvents" กำลังประมวลผล |
(อย่าเรียกเมธอดโดยตรง AddAsyncSocket , RemoveAsyncSocket , NotifyNextReadyForReading และ NotifyNextReadyForWriting )
รายละเอียดคลาส XClosedReason :
| ตัวแปรคงที่ | ค่า |
|---|
| ข้อผิดพลาด | 0x00 |
| ClosedByHost | 0x01 |
| ClosedByPeer | 0x02 |
| หมดเวลา | 0x03 |
รายละเอียดคลาส XAsyncSocket :
| วิธี | ข้อโต้แย้ง |
|---|
| GetAsyncSocketsPool | ไม่มี |
| GetSocketObj | ไม่มี |
| ปิด | ไม่มี |
| คุณสมบัติ | รายละเอียด |
|---|
| รหัสซ็อกเก็ต | รับ ID เฉพาะของซ็อกเก็ตที่เปิดอยู่ |
| เปิดปิด | รับหรือตั้งค่าเหตุการณ์ประเภท f (closedReason) |
| สถานะ | รับหรือตั้งค่าวัตถุแบบกำหนดเอง |
รายละเอียดคลาส XAsyncTCPServer :
| วิธี | ข้อโต้แย้ง |
|---|
| สร้าง (คงที่) | asyncSocketsPool , srvAddr (tuple ของ ip และพอร์ต), srvBacklog=256 (int), bufSlots=None |
| คุณสมบัติ | รายละเอียด |
|---|
| SrvAddr | Tuple ของ ip และพอร์ต |
| เมื่อลูกค้ายอมรับแล้ว | รับหรือตั้งค่าเหตุการณ์ประเภท f(xAsyncTCPServer, xAsyncTCPClient) |
รายละเอียดคลาส XAsyncTCPClient :
| วิธี | ข้อโต้แย้ง |
|---|
| สร้าง (คงที่) | asyncSocketsPool , srvAddr (tuple ของ ip และพอร์ต), connectTimeout=5 (int), recvBufLen=4096 (int), sendBufLen=4096 (int), connectAsync=True (บูล) |
| AsyncRecvLine | lineEncoding='UTF-8' , onLineRecv=None (ฟังก์ชัน), onLineRecvArg=None (วัตถุ) , 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 |
| เริ่มบริบท SSL | sslContext , serverSide=False |
-
onLineRecv เป็นเหตุการณ์การโทรกลับประเภท f(xAsyncTCPClient, line, arg) -
onDataRecv เป็นเหตุการณ์การติดต่อกลับประเภท f(xAsyncTCPClient, data, arg) -
onDataSent เป็นเหตุการณ์การติดต่อกลับประเภท f(xAsyncTCPClient, arg) -
StartSSL และ StartSSLContext ไม่ทำงานบน MicroPython (ในโหมดซ็อกเก็ตที่ไม่บล็อกแบบอะซิงโครนัส) - ขอแนะนำให้ใช้
StartSSLContext แทน StartSSL (เวอร์ชันเก่า)
| คุณสมบัติ | รายละเอียด |
|---|
| SrvAddr | Tuple ของ ip และพอร์ต |
| CliAddr | Tuple ของ ip และพอร์ต |
| เป็น SSL | ส่งกลับค่า True หากใช้ SSL |
| กำลังส่งบัฟเฟอร์ | รับบัฟเฟอร์ที่มีอยู่ (memoryview) ที่ใช้ในการส่งข้อมูล |
| OnFailsToConnect | รับหรือตั้งค่าเหตุการณ์ประเภท f(xAsyncTCPClient) |
| เมื่อเชื่อมต่อแล้ว | รับหรือตั้งค่าเหตุการณ์ประเภท f(xAsyncTCPClient) |
รายละเอียดคลาส XAsyncUDPDatagram :
| วิธี | ข้อโต้แย้ง |
|---|
| สร้าง (คงที่) | asyncSocketsPool , localAddr=None (tuple ของ ip และพอร์ต), recvBufLen=4096 (int), broadcast=False (บูล) |
| AsyncSendDatagram | datagram (ไบต์หรือโปรโตคอลบัฟเฟอร์), remoteAddr (ทูเพิลของ ip และพอร์ต), onDataSent=None (ฟังก์ชัน), onDataSentArg=None (วัตถุ) |
- onDataSent เป็นเหตุการณ์การติดต่อกลับประเภท f(xAsyncUDPDatagram, arg)
| คุณสมบัติ | รายละเอียด |
|---|
| LocalAddr | Tuple ของ ip และพอร์ต |
| OnRecv | รับหรือตั้งค่าเหตุการณ์ประเภท f(xAsyncUDPDatagram, remoteAddr, datagram) |
| เมื่อล้มเหลวในการส่ง | รับหรือตั้งค่าเหตุการณ์ประเภท f(xAsyncUDPDatagram, datagram, remoteAddr) |
รายละเอียดคลาส XBufferSlot :
| วิธี | ข้อโต้แย้ง |
|---|
| ตัวสร้าง | size (int), keepAlloc=True (บูล) |
| คุณสมบัติ | รายละเอียด |
|---|
| มีอยู่ | รับหรือตั้งค่าความพร้อมใช้งานของสล็อต |
| ขนาด | รับขนาดบัฟเฟอร์ของสล็อต |
| บัฟเฟอร์ | รับบัฟเฟอร์ของสล็อต |
รายละเอียดคลาส XBufferSlots :
| วิธี | ข้อโต้แย้ง |
|---|
| ตัวสร้าง | slotsCount (int), slotsSize (int), keepAlloc=True (บูล) |
| รับAvailableSlot | ไม่มี |
| คุณสมบัติ | รายละเอียด |
|---|
| SlotsCount | รับจำนวนช่อง |
| ขนาดสล็อต | รับขนาดบัฟเฟอร์ของแต่ละช่อง |
| สล็อต | รับรายการสล็อต |
รายละเอียดคลาส XFiFo :
| วิธี | ข้อโต้แย้ง |
|---|
| ตัวสร้าง | ไม่มี |
| ใส่ | obj (วัตถุ) |
| รับ | ไม่มี |
| ชัดเจน | ไม่มี |
| คุณสมบัติ | รายละเอียด |
|---|
| ว่างเปล่า | คืนค่า True หาก FiFo ว่างเปล่า |
โดย JC`zic สำหรับ HC² ;')
ให้มันง่ายโง่ ?