XAsyncSockets は、マネージド非同期ソケットの効率的な Python/MicroPython ライブラリです。
統合は非常に簡単で、1 つのファイルのみで非常に軽量です。
XAsyncSocket の機能:
- プール内の管理された非同期ソケット (最大数千!)
- I/O と直接連携して非常に高速に送受信します。
- 非常に多くの同時 TCP 接続をサポートします
- 必要に応じて同時同期処理操作をサポートします (スレッド化)
- TCPサーバーの実装
- TCPクライアントの実装
- UDP データグラムの実装 (送信者および/または受信者)
- TCP クライアントは、指定されたサイズのデータまたはテキスト行を受信した後にイベントを発生させることができます
- 各接続と受信は指定された時間の間待機できます
- TCP クライアントが終了した理由が返されます。
- 本当に堅牢で、非常に高速で使いやすい
- MicroPython 実装との互換性 (ソケット層、FiFo キュー、パフォーマンス カウンター)
XAsyncSocketクラス:
クラス名 | 説明 |
---|
XAsyncソケットプール | 「XAsyncSocket」オブジェクトの管理されたプール |
XClosedReason | 「XAsyncSocket」の終了理由の列挙子 |
XAsyncソケット | マネージド非同期ソケットの抽象クラス |
XAsyncTCPサーバー | 「XAsyncSocket」の TCP サーバー実装 |
XAsyncTCPCクライアント | 「XAsyncSocket」の TCP クライアント実装 |
XAsyncUDPデータグラム | 「XAsyncSocket」の UDP 送信者/受信者実装 |
Xバッファスロット | 管理されたバッファ |
XBufferSlots | 管理されたバッファのコレクション |
XFiFo | 専用の FiFo キュー |
XAsyncSocket の例外:
クラス名 | 説明 |
---|
XAsyncSocketsPoolException | 「XAsyncSocketsPool」の例外クラス |
XAsyncSocketException | 「XAsyncSocket」の例外クラス |
XAsyncTCPServerException | 「XAsyncTCPServer」の例外クラス |
XAsyncTCPClientException | 「XAsyncTCPClient」の例外クラス |
XAsyncUDPDatagramException | 「XAsyncUDPDatagram」の例外クラス |
XFiFo例外 | 「XFiFo」の例外クラス |
XAsyncSocketsPoolクラスの詳細:
方法 | 引数 |
---|
コンストラクタ | なし |
GetAllAsyncSockets | なし |
GetAsyncSocketByID | id (整数) |
非同期待機イベント | threadsCount=0 (整数) |
停止待機イベント | なし |
財産 | 詳細 |
---|
待機イベント処理 | 「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 |
財産 | 詳細 |
---|
SrvAddr | IPとポートのタプル |
OnClientAccepted | タイプ 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) |
AsyncRecvData | size=None (int)、 onDataRecv=None (関数)、 onDataRecvArg=None (オブジェクト)、 timeoutSec=None (int) |
非同期送信データ | 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 では機能しません (非同期ノンブロッキング ソケット モード) -
StartSSL
(古いバージョン) ではなくStartSSLContext
を使用することを広く推奨します。
財産 | 詳細 |
---|
SrvAddr | IPとポートのタプル |
クリップアドレス | IPとポートのタプル |
SSL | SSL が使用されている場合はTrue を返します |
送信バッファ | データの送信に使用される既存のバッファー (メモリービュー) を取得します。 |
接続失敗時 | f(xAsyncTCPClient) タイプのイベントを取得または設定します |
接続中 | f(xAsyncTCPClient) タイプのイベントを取得または設定します |
XAsyncUDPDatagramクラスの詳細:
方法 | 引数 |
---|
作成 (静的) | asyncSocketsPool 、 localAddr=None (IP とポートのタプル)、 recvBufLen=4096 (int)、 broadcast=False (bool) |
非同期送信データグラム | datagram (バイトまたはバッファ プロトコル)、 remoteAddr (IP とポートのタプル)、 onDataSent=None (関数)、 onDataSentArg=None (オブジェクト) |
- onDataSent は、タイプ f(xAsyncUDPDatagram, arg) のコールバック イベントです。
財産 | 詳細 |
---|
ローカルアドレス | IPとポートのタプル |
受信時 | f(xAsyncUDPDatagram、remoteAddr、datagram) タイプのイベントを取得または設定します |
送信失敗時 | f(xAsyncUDPDatagram、datagram、remoteAddr) タイプのイベントを取得または設定します |
XBufferSlotクラスの詳細:
方法 | 引数 |
---|
コンストラクタ | size (int)、 keepAlloc=True (bool) |
財産 | 詳細 |
---|
利用可能 | スロットの空き状況を取得または設定します |
サイズ | スロットのバッファサイズを取得します |
バッファ | スロットのバッファを取得します |
XBufferSlotsクラスの詳細:
方法 | 引数 |
---|
コンストラクタ | slotsCount (int)、 slotsSize (int)、 keepAlloc=True (bool) |
GetAvailableスロット | なし |
財産 | 詳細 |
---|
スロット数 | スロット数を取得する |
スロットサイズ | 各スロットのバッファサイズを取得する |
スロット | スロットのリストを取得する |
XFiFoクラスの詳細:
方法 | 引数 |
---|
コンストラクタ | なし |
置く | obj (オブジェクト) |
得る | なし |
クリア | なし |
財産 | 詳細 |
---|
空の | FiFo が空の場合はTrue を返します |
HC² の JC`zic による ;')
シンプルにしてください、愚か者?