easysocket – a lightweight network library

easysocket 是一个专为 MicroPython 设计的轻量级、非阻塞、事件驱动的网络库。它封装了原始套接字操作和 select.poll 机制的复杂性,提供了一个简单的基于回调的 API。目前,它支持 TCP(传输控制协议)用于构建健壮的客户端和服务器,并计划在未来版本中支持 UDP(用户数据报协议)。

特性

  • 非阻塞与事件驱动:基于 select.poll() 机制,所有套接字操作都是非阻塞的。事件通过定期的 check_event() 调用分发,防止网络 I/O 阻塞主线程——非常适合 MicroPython。

  • 基于回调:为客户端(on_connect, on_data_received, on_disconnect)和服务器(on_client_connect, on_data_received, on_client_disconnect)提供简单的事件钩子。回调使用 micropython.schedule 安全调度。

  • 高度抽象:初始化时自动连接/监听。服务器端的客户端连接被封装在 EasyTCPClientSocket 对象中,便于管理。

  • 并发性EasyTCPServer 同时处理多个客户端连接,管理每个会话的生命周期。

  • 健壮性:处理非阻塞错误(如 EAGAIN),并确保在断开连接时进行适当的资源清理(关闭套接字,注销轮询)。

Classes