XAsyncSockets는 관리되는 비동기 소켓의 효율적인 Python/MicroPython 라이브러리입니다.
통합이 매우 쉽고 파일 하나만 있으면 매우 가볍습니다.
XAsyncSocket 기능:
- 풀의 관리형 비동기 소켓(최대 수천 개!)
- I/O와 직접 작동하여 매우 빠르게 수신하고 전송합니다.
- 매우 많은 수의 동시 TCP 연결 지원
- 필요한 경우 동시 동기 처리 작업 지원(스레드)
- TCP 서버 구현
- TCP 클라이언트 구현
- UDP 데이터그램 구현(송신자 및/또는 수신자)
- TCP 클라이언트는 지정된 크기의 데이터 또는 텍스트 라인이 수신된 후에 이벤트를 발생시킬 수 있습니다.
- 각 연결 및 수신은 지정된 시간 동안 대기할 수 있습니다.
- TCP 클라이언트 폐쇄 이유가 반환됩니다.
- 매우 견고하고 매우 빠르고 사용하기 쉽습니다.
- MicroPython 구현과 호환 가능(소켓 레이어, FiFo 큐, 성능 카운터)
XAsyncSocket 클래스:
수업명 | 설명 |
---|
XAsyncSockets풀 | 'XAsyncSocket' 개체의 관리형 풀 |
XClosedReason | 'XAsyncSocket' 종료 이유 열거자 |
XAsyncSocket | 관리되는 비동기 소켓의 추상 클래스 |
XAsyncTCP서버 | 'XAsyncSocket'의 TCP 서버 구현 |
XAsyncTCP클라이언트 | 'XAsyncSocket'의 TCP 클라이언트 구현 |
XAsyncUDP데이터그램 | 'XAsyncSocket'의 UDP 발신자/수신자 구현 |
XBufferSlot | 관리되는 버퍼 |
XBufferSlot | 관리형 버퍼 컬렉션 |
XFiFo | 전용 FiFo 대기열 |
XAsyncSocket 예외:
수업명 | 설명 |
---|
XAsyncSocketsPoolException | 'XAsyncSocketsPool'에 대한 예외 클래스 |
XAsyncSocket예외 | 'XAsyncSocket'에 대한 예외 클래스 |
XAsyncTCPServerException | 'XAsyncTCPServer'에 대한 예외 클래스 |
XAsyncTCPClientException | 'XAsyncTCPClient'에 대한 예외 클래스 |
XAsyncUDPDatagramException | 'XAsyncUDPDatagram'에 대한 예외 클래스 |
XFiFo예외 | 'XFiFo'에 대한 예외 클래스 |
XAsyncSocketsPool 클래스 세부 정보:
방법 | 인수 |
---|
건설자 | 없음 |
GetAllAsyncSockets | 없음 |
GetAsyncSocketByID | id (정수) |
AsyncWait이벤트 | threadsCount=0 (정수) |
중지대기이벤트 | 없음 |
재산 | 세부 |
---|
WaitEvents처리 중 | "WaitEvents"가 처리 중이면 True 반환합니다. |
( AddAsyncSocket
, RemoveAsyncSocket
, NotifyNextReadyForReading
및 NotifyNextReadyForWriting
메서드를 직접 호출하지 마세요.)
XClosedReason 클래스 세부정보:
정적 변수 | 값 |
---|
오류 | 0x00 |
호스트에 의해 종료됨 | 0x01 |
동료에 의해 종료됨 | 0x02 |
시간 초과 | 0x03 |
XAsyncSocket 클래스 세부정보:
방법 | 인수 |
---|
GetAsyncSocketsPool | 없음 |
GetSocketObj | 없음 |
닫다 | 없음 |
재산 | 세부 |
---|
소켓ID | 열린 소켓 고유 ID 가져오기 |
폐쇄됨 | f(closedReason) 유형의 이벤트를 가져오거나 설정합니다. |
상태 | 사용자 정의 개체 가져오기 또는 설정 |
XAsyncTCPServer 클래스 세부 정보:
방법 | 인수 |
---|
생성(정적) | asyncSocketsPool , srvAddr (ip와 포트의 튜플), srvBacklog=256 (int), bufSlots=None |
재산 | 세부 |
---|
서비스 주소 | IP와 포트의 튜플 |
클라이언트에서 승인됨 | f(xAsyncTCPServer, xAsyncTCPClient) 유형의 이벤트 가져오기 또는 설정 |
XAsyncTCPClient 클래스 세부 정보:
방법 | 인수 |
---|
생성(정적) | asyncSocketsPool , srvAddr (ip와 포트의 튜플), connectTimeout=5 (int), recvBufLen=4096 (int), sendBufLen=4096 (int), connectAsync=True (bool) |
AsyncRecvLine | lineEncoding='UTF-8' , onLineRecv=None (함수), onLineRecvArg=None (객체) , timeoutSec=None (int) |
비동기Recv데이터 | 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에서 작동하지 않습니다(비동기 비차단 소켓 모드). -
StartSSL
(이전 버전)보다는 StartSSLContext
사용하는 것이 널리 권장됩니다.
재산 | 세부 |
---|
서비스 주소 | IP와 포트의 튜플 |
CliAddr | IP와 포트의 튜플 |
IsSSL | SSL이 사용되면 True 반환합니다. |
SendingBuffer | 데이터를 보내는 데 사용되는 기존 버퍼(memoryview)를 가져옵니다. |
OnFailsToConnect | f(xAsyncTCPClient) 유형의 이벤트 가져오기 또는 설정 |
연결됨 | f(xAsyncTCPClient) 유형의 이벤트 가져오기 또는 설정 |
XAsyncUDPDatagram 클래스 세부 정보:
방법 | 인수 |
---|
생성(정적) | asyncSocketsPool , localAddr=None (ip와 포트의 튜플), recvBufLen=4096 (int), broadcast=False (bool) |
AsyncSend데이터그램 | 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 (부울) |
재산 | 세부 |
---|
사용 가능 | 슬롯의 가용성을 가져오거나 설정합니다. |
크기 | 슬롯의 버퍼 크기를 가져옵니다. |
완충기 | 슬롯의 버퍼를 가져옵니다 |
XBufferSlots 클래스 세부정보:
방법 | 인수 |
---|
건설자 | slotsCount (int), slotsSize (int), keepAlloc=True (bool) |
사용 가능한 슬롯 가져오기 | 없음 |
재산 | 세부 |
---|
슬롯 개수 | 슬롯 수를 가져옵니다. |
슬롯 크기 | 각 슬롯의 버퍼 크기를 가져옵니다. |
슬롯 | 슬롯 목록 가져오기 |
XFiFo 클래스 세부사항:
방법 | 인수 |
---|
건설자 | 없음 |
놓다 | obj (객체) |
얻다 | 없음 |
분명한 | 없음 |
재산 | 세부 |
---|
비어 있는 | FiFo가 비어 있으면 True 반환합니다. |
HC²를 위한 JC`zic 작성 ;')
간단하게 해라, 바보야 ?