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),并确保在断开连接时进行适当的资源清理(关闭套接字,注销轮询)。