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² ;')
ให้มันง่ายโง่ ?