LwIP协议栈接口
协议栈api函数
1、netconn_new //UDP TCP
struct netconn*netconn_new(enum netconn_type t)
为新连接申请一个连接结构netconn空间
2、netconn_delete //UDP TCP
err_t netconn_delete(struct netconn *conn)
删除一个连接结构netconn
3、netconn_getaddr
err_t netconn_getaddr(struct netconn *conn, ip_addr_t *addr, u16_t *port, u8_t local)
获得一个连接结构netconn中的源IP地址和源端口号或者目的IP地址和目的端口号,local指明是获得源地址信息还是目的地址信息,当为1时表示本地,即源地址信息。
4、netconn_bind //UDP TCP
err_t netconn_bind(struct netconn *conn, ip_addr_t *addr, u16_t port)
将一个连接结构与本地IP地址addr(IP_ADDR_ANY代表任何一个网络接口的IP地址)和端口号port进行绑定,作为服务器端程序,执行这一步的操作是必要的,服务器必须与熟知端口进行绑定才能接收客户端的连接请求。
5、netconn_connect
err_t netconn_connect(struct netconn *conn, ip_addr_t *addr, u16_t port)
连接服务器,它将连接结构与目的IP地址addr和目的端口号port进行绑定,当作为TCP客户端程序时,调用该函数会导致连接握手产生。
6、netconn_disconnect
err_t netconn_disconnect(struct netconn *conn)
只能使用在UDP连接中,功能是与服务器断开连接,对于UDP来说,就是将UDP控制块中的remote_ip和remote_port字段值清除。
7、netconn_listen
函数本质是一个宏,其调用原型如下
#define netconn_listen(conn) netconn_listen_with_backlog(conn, TCP_DEFAULT_LISTEN_BACKLOG)
只在TCP的服务器程序中使用,函数的功能是将连接结构netconn置位侦听状态,即将TCP控制块的状态设置为LISTEN状态。
8、netconn_accept
err_t netconn_accept(struct netconn *conn, struct netconn **new_conn)
一个只用于TCP服务器程序的函数,服务器调用此函数可以从acceptmbox邮箱中获得一个新建立的连接,若邮箱为空,则函数会一直阻塞,直至新连接到来。
9、netconn_recv
err_t netconn_recv(struct netconn *conn, struct netbuf **new_buf);
从连接的recvmbox邮箱中接收数据包,可用于TCP连接,也可用于UDP连接。函数会一直阻塞,直至从邮箱中获得数据消息,连接数据都封装在netbuf中。
10、netconn_send
err_t netconn_send(struct netconn *conn, struct netbuf *buf);
用于已经建立的UDP连接上(即UDP控制块中记录了目的IP地址和目的端口号)发送数据。
11、netconn_write
#define netconn_write(conn, dataptr, size, apiflags) \
netconn_write_partly(conn, dataptr, size, apiflags, NULL)
用于在稳定的TCP连接上发送数据。
12、netconn_close
err_t netconn_close(struct netconn *conn);
关闭一个TCP连接。
LwIP协议栈接口的更多相关文章
- lwip协议栈学习---udp
书籍:<嵌入式网络那些事-lwip协议> udp协议的优点: 1)基于IP协议,无连接的用户数据报协议,适用于传送大批量数据, 2)实时性比较高,适用于嵌入式网络 发送函数:udp_sen ...
- LwIP协议栈规范翻译——摘要目录
摘要 LwIP是一种TCP/IP协议栈的实现.LwIP协议栈专注于减少内存的使用和代码的大小,使LwIP适用于嵌入式系统中在有限的资源下能够使用小型的客户机.为了减少处理和内存的需求,LwIP使用裁剪 ...
- LwIP协议栈开发嵌入式网络的三种方法分析
LwIP协议栈开发嵌入式网络的三种方法分析 摘要 轻量级的TCP/IP协议栈LwIP,提供了三种应用程序设计方法,且很容易被移植到多任务的操作系统中.本文结合μC/OS-II这一实时操作系统,以 ...
- 基于Lwip协议栈中独立模式下回调函数的使用
一.使用Lwip协议独立模式开发 最近在STM32F4上边移植了Lwip,Lwip是一个小型开源的TCP/IP协议栈,有无操作系统的支持都可以运行.我当前只测试了TCP Server功能,然后对TCP ...
- 一种基于uCos-II操作系统和lwIP协议栈的IEEE-1588主站以及基于该主站的报文处理方法
主站以及应用于电力系统的支持IEEE‐1588协议的主时钟(IEEE‐1588主站)的实现方法.该方法是在一个低成本的硬件平台上,借助uCos‐II操作系统和TCP/IP的协议栈,对以太网数据进行了分 ...
- 1、 LwIP协议栈规范翻译——简介
1.简介 在过去几年中,计算机和计算机支持设备接之间的互联到无线网络日趋增加.计算机已经越来越无缝的集成在了日常的设备且价格也在下降.同时,无线网络技术例如蓝牙[HNI+98]和IEEE802.11b ...
- LwIP协议栈(2):网络接口
在LwIP中,物理网络硬件接口结构保存在一个全局链表中,它们通过结构体中的 next 指针连接. struct netif { /// pointer to next in linked list * ...
- lwip协议栈移植(1)
lwip移植分为两类: 1,只移植内核核心,用户应用程序编写只能基于raw/callback api进行 2,移植内核核心和上层API函数模块,用户可以使用所有三种API编程,即 raw/callba ...
- 5、 LwIP协议栈规范翻译——操作系统仿真层
为了使lwIP可移植,操作系统特定的函数调用和数据结构不直接在协议的代码中使用.相反,当需要这样的函数调用和数据结构时,直接使用操作系统仿真层. 操作系统仿真层为操作系统服务提供统一的接口,如定时器, ...
随机推荐
- html5 + vue
偶然与巧合 舞动了蝶翼 谁的心头风起 前赴而后继 万千人追寻 荒漠唯一菩提 似擦肩相遇 或擦肩而去 命运犹如险棋 无数时间线 无数可能性 终于交织向你
- day29单例模式的4种实现模式
单例模式的四种实现模式单例模式实现方式一: import settings class MySQL: __instance=None def __init__(self, ip, port): ...
- MPP数据库
MPP数据库 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/lyc417356935/article/details/45033069 MPP数据库定 ...
- 关于element-ui日期选择器disabledDate使用心得
实现目的: 使用type="data"类型实现具备开始日期与结束日期组件(ps:element有自带的type="daterange"类型的组件可以实现此功能) ...
- python3之time、datetime、random
UTC:协调世界时,又称世界统一时间.世界标准时间.国际协调时间.由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC. 中国属于东八区,领先世界时间8小时 time模块 time.ti ...
- 十六进制颜色值和rgb颜色值互相转换
在之前的一篇文章<将16进制的颜色转为rgb颜色>中,曾经写过将16进制的颜色转换为rgb颜色. 当然了,今天再看,还是有很多可以优化的地方,所以对之前的代码重构了一遍,并且同时写了一个反 ...
- Spring MVC 之 请求url 带后缀的情况
RequestMappingInfoHandlerMapping 在处理http请求的时候, 如果 请求url 有后缀,如果找不到精确匹配的那个@RequestMapping方法.那么,就把后缀去掉, ...
- ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询解决之道
参考文章:https://blog.csdn.net/Trigl/article/details/50933495 解决.
- leetcode53
public class Solution { public int MaxSubArray(int[] nums) { int max = int.MinValue; ; ; i < nums ...
- Selenium + Chrome headless 报ERROR:gpu_process_transport_factory.cc(1007)] Lost UI shared context 可忽略并配置不输出日志
Selenium不再推荐使用PhantomJS,会报如下警告 UserWarning: Selenium support for PhantomJS has been deprecated, plea ...