已剪辑自: https://mp.weixin.qq.com/s/_1LE7mGc9mRuajRgNsyirQ
onps是一个开源且完全自主开发的国产网络协议栈,适用于资源受限的单片机系统,提供完整地ethernet/ppp/tcp/ip协议族实现,同时提供sntp、dns、ping等网络工具,支持以太网环境下dhcp动态ip地址申请,也支持动态及静态路由表。
协议栈还封装实现了一个伯克利套接字(Berkeley sockets)层。
该层并没有完全按照Berkeley sockets标准设计实现,而是我根据以往socket编程经验,以方便用户使用、简化用户编码为设计目标,重新声明并定义了一组常见socket接口函数:
- socket:创建一个socket,目前仅支持udp和tcp两种类型
- close:关闭一个socket,释放当前占用的协议栈资源
- connect:与目标tcp服务器建立连接(阻塞型)或绑定一个固定的udp服务器地址
- connect_nb:与目标tcp服务器建立连接(非阻塞型)
- is_tcp_connected:获取当前tcp链路的连接状态
- send:数据发送函数,tcp链路下为阻塞型
- send_nb:数据发送函数,非阻塞型